computersciencehouse / conditional Goto Github PK
View Code? Open in Web Editor NEWCSH Evals, the modern way.
Home Page: https://conditional.csh.rit.edu
License: MIT License
CSH Evals, the modern way.
Home Page: https://conditional.csh.rit.edu
License: MIT License
So, I have been thinking about how we want to handle the entry of co-ops into Conditional. Personally, it makes sense to me to have the user submit their co-op start and end dates and then for the Evals director to approve them (so a user can't enter a false co-op). We could have a page (under Forms) for submission and then just show a banner for the Evals director on their Dashboard with an approve or reject button.
technical_seminars.id" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate. Consider alternative strategies for improved performance. 'strategies for improved performance.' % expr)
All of the committee meetings displayed on a member's dashboard are given the correct date, but are all timestamped at 00:00:00.
When members are edited in the manager management table their room numbers are set to None
if the room number field is left blank. This is an error in conditional/util/ldap.py
where __ldap_set_field__
is called, instead of removing the field.
Just going to toss out an idea myself and others have been kicking around for a few years that I'd really like to see implemented.
It would be nice to take advantage of the fact we require descriptions of projects for submission to eboard for PR/record keeping purposes. Concretely, I'd like the following functionality (and happy to implement myself):
Freshman Project Status.
Right now there's no way for the evals director to set whether or not a member passed freshman project.
This would probably be what we want for the frontend. At least in terms of user experience / flow.
http://farhadi.ir/projects/html5sortable/
I'm not sure how we'd implement this in the backend (because we wouldn't want to have to change the entire list sorting each time) So it'll be interesting seeing how postgres will handle this kind of data format of a linked list.
It's super helpful for people to report bugs & realize that they can contribute if there's a link to the project page. Something simple like what Packet has at the footer would be perfect - it's not in your face, but always there for when you need it.
Noticed the schema seems to have grown/changed somewhat since the last time someone touched the conditional/models/doc.md
file.
We shouldn't have blocks of code in our controllers checking to see if there's an LDAP diff. In fact, I'm not sure it's worth our time to actually check if there's a diff because if there is we're making 2 LDAP requests instead of one. If we do decide to check, that logic should be moved into the LDAP methods themselves to abstract it away from the controllers.
I have a a somewhat large refactoring of the LDAP util coming down the pipe, so we should hold off on this until that's merged.
So it turns out it is hard to create a conditional in conditional outside of normal evals presentations. We need a conditional form in conditional that allows the evals director to submit / update a conditional in the conditional db so all members can see the status of a conditional when accessing conditional.
Sometimes people walk in right after attendance is submitted and it would be neater convention to add them in after the fact rather than give them separate attendance.
Spring Evaluations has been changed to Membership Evaluations years ago.
ComputerScienceHouse/Constitution@2904d74
We may want to implement a way for members to be exempt from quorum requirements, or calculate quorum minus a certain number of people. We don't need this explicitly because the Evaluations director can just excuse members who are under a leave of absence manually from House Meetings.
You shouldn't be able to submit an empty major project form.
Right now we're just logging to stdout/stderr. We should log to a file specified in config.py.
The evaluations director should be able to make large scale changes on the housing page and then have those changes reflected in LDAP. This would replace the need for them to have to manually edit the room number of each member in order to properly construct the housing roster.
We need to add a vote calculator. We should actually make it easy to follow unlike its predecessor.
If there's a reason why the submission failed, list the reason so it can be fixed.
e.g. "Your project name is blank! Please give it a name."
/slideshow/spring
need to be visually reformatted.The "Pending" label is odd for inactive members, maybe add a "Not Applicable" state instead
Ideally we should be able to run n
instances of Conditional without any issue. This would tie in well with our current WSGI setup allowing us to have multiple WSGI "threads".
This also would be useful if we ever wanted to containerize Conditional and would allow for load balancing between different instances.
When going to delete a user from the system, Conditional throws an error
https://conditional.csh.rit.edu => Conditional
There is a lot of redundant information on the homepage about telling me that I haven't missed any house meetings, gone to any committee meetings, or passed a major project.
This is relatively low-priority, but we need to create an endpoint for the evals director that will change the active tag in all applicable db entries to false.
Issues I have with the current design:
I'd prefer a similarly sized table without the background colors, but with data and a status icon rather than the christmas tree.
Might also be good to list the threshold for things like meeting/seminar attendance. So "committee meetings 9/10" would be listed in this screenshot.
If you have a room number, your housing queue position should not show, and vice versa.
On the dashboard, the list of committee meeting attendance needs to be paginated so the list is not impossibly long.
Basically just a page that shows the number of members required to meet various quorum requirements (The same as original evals db site)
Currently the Attendance Log on the Dashboard conjoins the House Meeting and Committee Meeting Attendance. I've gotten feedback from a few people who would prefer these to be separate sections.
The housing queue list sorts initially by housing points and then by first name alphabetically. Should be sorted according to housing rank indicated on user conditional page.
We need to be able to log actions that are taken under the conditional system. In EvalsDB this was done using a MySql Database. Because disk-space is very cheap I think we should be as verbose as possible.
Everywhere that it says the word "committee" like in committee meetings, it should be changed to "directorship" like in directorship meetings. The reason they were committee meetings in evals is because that was before we voted in the change.
The UI for the Member Management Page is all kinds of messed up. I don't know how I broke the CSS in the ways that I did but it's definitely not what it should be. Also the Javascript that I wrote for it to work definitely needs to be refactored.
Possible undefined behavior when a user account is created and then before the user account is upgrade house meeting attendance is rewarded to both the fid and uid. This could easily be fixed with an overwrite but it unlikely to happen.
As a software developer, I would like to see proper implementation of endpoints and adherence to RESTful guidelines.
Ex.
GET
/attendance/hm => List of users eligible for HM attendance.
POST
/attendance/hm => Endpoint for posting HM attendance.
Basically, make our endpoints make some semblance of sense.
This can probably largely be copied from #4
I don't have time to check right now, but I think this may be automagically done via LDAP groups. We just need to make sure there's a way for someone to join in late.
There are descriptions for the purpose of everything, which is ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ but there is zero type information. Sad!
Flask probably has a decorator for this or someone has probably already implemented it. Will investigate and implement.
Right now, there's no way to update the database schema without deleting the whole database and starting over or manually updating the database to reflect the new schema. We should use Flask-Migrate to manage our database migrations and reduce the possibility of human error and data loss in future schema updates.
The name field of major projects have a maximum length of 64 characters. The form does not reflect this property.
if member['uid'] == 'loothelion':
print('Just emulate a user you idiot! <3')
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.