From 5c141db7e619ba0803bf5bed2b33d0090bb72ac4 Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Sat, 26 Mar 2022 22:28:13 -0400 Subject: [PATCH 1/3] Add Committee Meetings to Intro Evals Page --- conditional/blueprints/intro_evals.py | 38 ++++++++++++++++++++------ conditional/templates/intro_evals.html | 35 ++++++++++++++++++------ 2 files changed, 57 insertions(+), 16 deletions(-) diff --git a/conditional/blueprints/intro_evals.py b/conditional/blueprints/intro_evals.py index 7cd276b..544c08c 100644 --- a/conditional/blueprints/intro_evals.py +++ b/conditional/blueprints/intro_evals.py @@ -32,10 +32,24 @@ def display_intro_evals(internal=False, user_dict=None): log.info('Display Intro Evals Listing') # get user data - def get_fid_cm_count(member_id): - return len([a for a in FreshmanCommitteeAttendance.query.filter( - FreshmanCommitteeAttendance.fid == member_id) - if CommitteeMeeting.query.filter(CommitteeMeeting.id == a.meeting_id).first().approved]) + def get_fid_cm(member): + c_meetings = [{ + "uid": cm[0], + "timestamp": cm[1], + "committee": cm[2] + } for cm in CommitteeMeeting.query.join( + FreshmanCommitteeAttendance, + FreshmanCommitteeAttendance.meeting_id == CommitteeMeeting.id + ).with_entities( + FreshmanCommitteeAttendance.fid, + CommitteeMeeting.timestamp, + CommitteeMeeting.committee + ).filter( + CommitteeMeeting.timestamp > start_of_year(), + FreshmanCommitteeAttendance.fid == member, + CommitteeMeeting.approved == True # pylint: disable=singleton-comparison + ).all()] + return c_meetings members = ldap_get_intro_members() @@ -64,8 +78,12 @@ def get_fid_cm_count(member_id): 'uid': fid.id, 'eval_date': fid.eval_date.strftime("%Y-%m-%d"), 'signatures_missed': signatures_missed, - 'committee_meetings': get_fid_cm_count(fid.id), - 'committee_meetings_passed': get_fid_cm_count(fid.id) >= 6, + 'committee_meetings': [{ + "uid": cm['uid'], + "timestamp": cm['timestamp'].strftime("%Y-%m-%d"), + "committee": cm['committee'] + } for cm in get_fid_cm(fid.id)], + 'committee_meetings_passed': len(get_fid_cm(fid.id)) >= 6, 'house_meetings_missed': [ { @@ -113,7 +131,11 @@ def get_fid_cm_count(member_id): 'uid': uid, 'eval_date': freshman_data.eval_date.strftime("%Y-%m-%d"), 'signatures_missed': freshman_data.signatures_missed, - 'committee_meetings': len(get_cm(member)), + 'committee_meetings': [{ + "uid": cm['uid'], + "timestamp": cm['timestamp'].strftime("%Y-%m-%d"), + "committee": cm['committee'] + } for cm in get_cm(member)], 'committee_meetings_passed': len(get_cm(member)) >= 6, 'house_meetings_missed': [ @@ -147,7 +169,7 @@ def get_fid_cm_count(member_id): ie_members.append(member_info) ie_members.sort(key=lambda x: len(x['house_meetings_missed'])) - ie_members.sort(key=lambda x: x['committee_meetings'], reverse=True) + ie_members.sort(key=lambda x: x['committee_meetings_passed'], reverse=True) ie_members.sort(key=lambda x: x['signatures_missed']) ie_members.sort(key=lambda x: x['status'] == "Passed") diff --git a/conditional/templates/intro_evals.html b/conditional/templates/intro_evals.html index d321fbe..2f4d508 100644 --- a/conditional/templates/intro_evals.html +++ b/conditional/templates/intro_evals.html @@ -74,15 +74,15 @@
{{ m['uid'] }}
{% endif %}
- {% if m['committee_meetings'] < 6 %} + {% if m['committee_meetings']|length < 6 %}
Directorship Meetings - {{m['committee_meetings']}} / 6 + {{m['committee_meetings']|length}} / 6
{% else %}
Directorship Meetings - {{m['committee_meetings']}} / 6 + {{m['committee_meetings']|length}} / 6
{% endif %} @@ -136,8 +136,27 @@

Missed House Meetings

{% endif %} - {% if m['technical_seminars']|length > 0 %} + {% if m['committee_meetings']|length > 0 %} +

Directorship Meetings

+ + + + + + + + + {% for meeting in m['committee_meetings'] %} + + + + + {% endfor %} + +
DateDirectorship
{{meeting['timestamp']}}{{meeting['committee']}}
+ {% endif %} + {% if m['technical_seminars']|length > 0 %}

Technical Seminars

@@ -203,11 +222,11 @@

Other Comments

Failed {% endif %} - @@ -115,9 +115,9 @@

Membership Evaluations

@@ -337,7 +337,7 @@

Directorship Meeting Attendance

{% for meeting in cm_attendance %} - + {% endfor %} diff --git a/conditional/templates/intro_eval_slideshow.html b/conditional/templates/intro_eval_slideshow.html index 2e10241..3820db7 100644 --- a/conditional/templates/intro_eval_slideshow.html +++ b/conditional/templates/intro_eval_slideshow.html @@ -24,10 +24,10 @@

{{m['signatures_missed']}}

- {% set committee_meetings_passed = m['committee_meetings'] >= 6 %} -
- -

{{m['committee_meetings']}}

+ {% set directorship_meetings_passed = m['directorship_meetings'] >= 6 %} +
+ +

{{m['directorship_meetings']}}

Meetings

diff --git a/conditional/templates/intro_evals.html b/conditional/templates/intro_evals.html index 2f4d508..e072a31 100644 --- a/conditional/templates/intro_evals.html +++ b/conditional/templates/intro_evals.html @@ -74,15 +74,15 @@
{{ m['uid'] }}
{% endif %}
- {% if m['committee_meetings']|length < 6 %} + {% if m['directorship_meetings']|length < 6 %}
Directorship Meetings - {{m['committee_meetings']|length}} / 6 + {{m['directorship_meetings']|length}} / 6
{% else %}
Directorship Meetings - {{m['committee_meetings']|length}} / 6 + {{m['directorship_meetings']|length}} / 6
{% endif %} @@ -136,7 +136,7 @@

Missed House Meetings

- {% if m['committee_meetings'] < 6 %} - {{m['committee_meetings']}} + + {% if m['committee_meetings']|length < 6 %} + {{m['committee_meetings']|length}} {% else %} - {{m['committee_meetings']}} + {{m['committee_meetings']|length}} {% endif %} From a99020e6af490bcffedb319ce33565f40744794f Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Sun, 27 Mar 2022 12:02:55 -0400 Subject: [PATCH 2/3] Use Proper Naming for Directorships --- conditional/blueprints/attendance.py | 96 +++++++++---------- conditional/blueprints/cache_management.py | 2 +- conditional/blueprints/co_op.py | 6 +- conditional/blueprints/dashboard.py | 11 ++- conditional/blueprints/intro_evals.py | 52 +++++----- conditional/blueprints/member_management.py | 16 ++-- conditional/blueprints/spring_evals.py | 10 +- conditional/models/docs.md | 22 ++--- conditional/models/models.py | 24 ++--- conditional/models/old_models.py | 14 +-- conditional/templates/attendance_cm.html | 6 +- conditional/templates/dashboard.html | 10 +- .../templates/intro_eval_slideshow.html | 8 +- conditional/templates/intro_evals.html | 20 ++-- .../templates/spring_eval_slideshow.html | 8 +- conditional/templates/spring_evals.html | 14 +-- conditional/util/flask.py | 6 +- conditional/util/member.py | 44 ++++----- frontend/javascript/modules/attendanceForm.js | 4 +- migrations/versions/3eaae92ce6b3_ad_hoc.py | 8 +- migrations/versions/9c57eb87e918_.py | 18 ++-- migrations/versions/e72e5d4d71f2_.py | 4 +- 22 files changed, 203 insertions(+), 200 deletions(-) diff --git a/conditional/blueprints/attendance.py b/conditional/blueprints/attendance.py index 7adbf99..d978fef 100644 --- a/conditional/blueprints/attendance.py +++ b/conditional/blueprints/attendance.py @@ -4,14 +4,14 @@ from flask import Blueprint, jsonify, redirect, request from conditional import db, start_of_year, auth -from conditional.models.models import CommitteeMeeting +from conditional.models.models import DirectorshipMeeting from conditional.models.models import CurrentCoops from conditional.models.models import FreshmanAccount -from conditional.models.models import FreshmanCommitteeAttendance +from conditional.models.models import FreshmanDirectorshipAttendance from conditional.models.models import FreshmanHouseMeetingAttendance from conditional.models.models import FreshmanSeminarAttendance from conditional.models.models import HouseMeeting -from conditional.models.models import MemberCommitteeAttendance +from conditional.models.models import MemberDirectorshipAttendance from conditional.models.models import MemberHouseMeetingAttendance from conditional.models.models import MemberSeminarAttendance from conditional.models.models import TechnicalSeminar @@ -106,7 +106,7 @@ def get_non_alumni_non_coop(internal=False, user_dict=None): @get_user def get_non_alumni(user_dict=None): log = logger.new(request=request, auth_dict=user_dict) - log.info('Retrieve Committee Meeting Attendance List') + log.info('Retrieve Directorship Meeting Attendance List') current_students = ldap_get_current_students() @@ -134,7 +134,7 @@ def get_non_alumni(user_dict=None): @get_user def display_attendance_cm(user_dict=None): log = logger.new(request=request, auth_dict=user_dict) - log.info('Display Committee Meeting Attendance Page') + log.info('Display Directorship Meeting Attendance Page') return render_template('attendance_cm.html', username=user_dict['username'], @@ -172,33 +172,33 @@ def display_attendance_hm(user_dict=None): @attendance_bp.route('/attendance/submit/cm', methods=['POST']) @auth.oidc_auth @get_user -def submit_committee_attendance(user_dict=None): +def submit_directorship_attendance(user_dict=None): log = logger.new(request=request, auth_dict=user_dict) approved = ldap_is_eboard(user_dict['account']) post_data = request.get_json() - committee = post_data['committee'] + directorship = post_data['directorship'] m_attendees = post_data['members'] f_attendees = post_data['freshmen'] timestamp = post_data['timestamp'] - log.info('Submit {} Meeting Attendance'.format(committee)) + log.info('Submit {} Meeting Attendance'.format(directorship)) timestamp = datetime.strptime(timestamp, "%Y-%m-%d") - meeting = CommitteeMeeting(committee, timestamp, approved) + meeting = DirectorshipMeeting(directorship, timestamp, approved) db.session.add(meeting) db.session.flush() db.session.refresh(meeting) for m in m_attendees: - log.info('Gave Attendance to {} for {}'.format(m, committee)) - db.session.add(MemberCommitteeAttendance(m, meeting.id)) + log.info('Gave Attendance to {} for {}'.format(m, directorship)) + db.session.add(MemberDirectorshipAttendance(m, meeting.id)) for f in f_attendees: - log.info('Gave Attendance to freshman-{} for {}'.format(f, committee)) - db.session.add(FreshmanCommitteeAttendance(f, meeting.id)) + log.info('Gave Attendance to freshman-{} for {}'.format(f, directorship)) + db.session.add(FreshmanDirectorshipAttendance(f, meeting.id)) db.session.commit() return jsonify({"success": True}), 200 @@ -363,12 +363,12 @@ def attendance_history(user_dict=None): def get_meeting_attendees(meeting_id): attendees = [ldap_get_member(a.uid).displayName for a in - MemberCommitteeAttendance.query.filter( - MemberCommitteeAttendance.meeting_id == meeting_id).all()] + MemberDirectorshipAttendance.query.filter( + MemberDirectorshipAttendance.meeting_id == meeting_id).all()] for freshman in [a.fid for a in - FreshmanCommitteeAttendance.query.filter( - FreshmanCommitteeAttendance.meeting_id == meeting_id).all()]: + FreshmanDirectorshipAttendance.query.filter( + FreshmanDirectorshipAttendance.meeting_id == meeting_id).all()]: attendees.append(FreshmanAccount.query.filter( FreshmanAccount.id == freshman).first().name) return attendees @@ -396,14 +396,14 @@ def get_seminar_attendees(meeting_id): offset = 0 if int(page) == 1 else ((int(page)-1)*10) limit = int(page)*10 all_cm = [{"id": m.id, - "name": m.committee, + "name": m.directorship, "dt_obj": m.timestamp, "date": m.timestamp.strftime("%a %m/%d/%Y"), "attendees": get_meeting_attendees(m.id), "type": "cm" - } for m in CommitteeMeeting.query.filter( - CommitteeMeeting.timestamp > start_of_year(), - CommitteeMeeting.approved).all()] + } for m in DirectorshipMeeting.query.filter( + DirectorshipMeeting.timestamp > start_of_year(), + DirectorshipMeeting.approved).all()] all_ts = [{"id": m.id, "name": m.name, "dt_obj": m.timestamp, @@ -414,13 +414,13 @@ def get_seminar_attendees(meeting_id): TechnicalSeminar.timestamp > start_of_year(), TechnicalSeminar.approved).all()] pend_cm = [{"id": m.id, - "name": m.committee, + "name": m.directorship, "dt_obj": m.timestamp, "date": m.timestamp.strftime("%a %m/%d/%Y"), "attendees": get_meeting_attendees(m.id) - } for m in CommitteeMeeting.query.filter( - CommitteeMeeting.timestamp > start_of_year(), - CommitteeMeeting.approved == False).all()] # pylint: disable=singleton-comparison + } for m in DirectorshipMeeting.query.filter( + DirectorshipMeeting.timestamp > start_of_year(), + DirectorshipMeeting.approved == False).all()] # pylint: disable=singleton-comparison pend_ts = [{"id": m.id, "name": m.name, "dt_obj": m.timestamp, @@ -446,9 +446,9 @@ def get_seminar_attendees(meeting_id): @attendance_bp.route('/attendance/alter/cm/', methods=['POST']) @auth.oidc_auth @get_user -def alter_committee_attendance(cid, user_dict=None): +def alter_directorship_attendance(cid, user_dict=None): log = logger.new(request=request, auth_dict=user_dict) - log.info('Edit Committee Meeting Attendance') + log.info('Edit Directorship Meeting Attendance') if not ldap_is_eboard(user_dict['account']): return jsonify({"success": False, "error": "Not EBoard"}), 403 @@ -458,17 +458,17 @@ def alter_committee_attendance(cid, user_dict=None): m_attendees = post_data['members'] f_attendees = post_data['freshmen'] - FreshmanCommitteeAttendance.query.filter( - FreshmanCommitteeAttendance.meeting_id == meeting_id).delete() + FreshmanDirectorshipAttendance.query.filter( + FreshmanDirectorshipAttendance.meeting_id == meeting_id).delete() - MemberCommitteeAttendance.query.filter( - MemberCommitteeAttendance.meeting_id == meeting_id).delete() + MemberDirectorshipAttendance.query.filter( + MemberDirectorshipAttendance.meeting_id == meeting_id).delete() for m in m_attendees: - db.session.add(MemberCommitteeAttendance(m, meeting_id)) + db.session.add(MemberDirectorshipAttendance(m, meeting_id)) for f in f_attendees: - db.session.add(FreshmanCommitteeAttendance(f, meeting_id)) + db.session.add(FreshmanDirectorshipAttendance(f, meeting_id)) db.session.flush() db.session.commit() @@ -510,7 +510,7 @@ def alter_seminar_attendance(sid, user_dict=None): @attendance_bp.route('/attendance/ts/', methods=['GET', 'DELETE']) @auth.oidc_auth @get_user -def get_cm_attendees(sid, user_dict=None): +def get_directorship_meetings_attendees(sid, user_dict=None): if request.method == 'GET': attendees = [{"value": a.uid, "display": ldap_get_member(a.uid).displayName @@ -552,28 +552,28 @@ def get_ts_attendees(cid, user_dict=None): attendees = [{"value": a.uid, "display": ldap_get_member(a.uid).displayName } for a in - MemberCommitteeAttendance.query.filter( - MemberCommitteeAttendance.meeting_id == cid).all()] + MemberDirectorshipAttendance.query.filter( + MemberDirectorshipAttendance.meeting_id == cid).all()] for freshman in [{"value": a.fid, "display": FreshmanAccount.query.filter(FreshmanAccount.id == a.fid).first().name - } for a in FreshmanCommitteeAttendance.query.filter( - FreshmanCommitteeAttendance.meeting_id == cid).all()]: + } for a in FreshmanDirectorshipAttendance.query.filter( + FreshmanDirectorshipAttendance.meeting_id == cid).all()]: attendees.append(freshman) return jsonify({"attendees": attendees}), 200 log = logger.new(request=request, auth_dict=user_dict) - log.info('Delete Committee Meeting {}'.format(cid)) + log.info('Delete Directorship Meeting {}'.format(cid)) if not ldap_is_eboard(user_dict['account']): return jsonify({"success": False, "error": "Not EBoard"}), 403 - FreshmanCommitteeAttendance.query.filter( - FreshmanCommitteeAttendance.meeting_id == cid).delete() - MemberCommitteeAttendance.query.filter( - MemberCommitteeAttendance.meeting_id == cid).delete() - CommitteeMeeting.query.filter( - CommitteeMeeting.id == cid).delete() + FreshmanDirectorshipAttendance.query.filter( + FreshmanDirectorshipAttendance.meeting_id == cid).delete() + MemberDirectorshipAttendance.query.filter( + MemberDirectorshipAttendance.meeting_id == cid).delete() + DirectorshipMeeting.query.filter( + DirectorshipMeeting.id == cid).delete() db.session.flush() db.session.commit() @@ -586,13 +586,13 @@ def get_ts_attendees(cid, user_dict=None): @get_user def approve_cm(cid, user_dict=None): log = logger.new(request=request, auth_dict=user_dict) - log.info('Approve Committee Meeting {} Attendance'.format(cid)) + log.info('Approve Directorship Meeting {} Attendance'.format(cid)) if not ldap_is_eboard(user_dict['account']): return jsonify({"success": False, "error": "Not EBoard"}), 403 - CommitteeMeeting.query.filter( - CommitteeMeeting.id == cid).first().approved = True + DirectorshipMeeting.query.filter( + DirectorshipMeeting.id == cid).first().approved = True db.session.flush() db.session.commit() diff --git a/conditional/blueprints/cache_management.py b/conditional/blueprints/cache_management.py index fc4a186..191d8e3 100644 --- a/conditional/blueprints/cache_management.py +++ b/conditional/blueprints/cache_management.py @@ -56,5 +56,5 @@ def clear_members_cache(): ldap_get_onfloor_members.cache_clear() -def clear_committee_cache(): +def clear_directorship_cache(): _ldap_is_member_of_directorship.clear_cache() diff --git a/conditional/blueprints/co_op.py b/conditional/blueprints/co_op.py index 27b86dc..e07d5d1 100644 --- a/conditional/blueprints/co_op.py +++ b/conditional/blueprints/co_op.py @@ -3,7 +3,7 @@ from conditional import db, start_of_year, auth from conditional.models.models import CurrentCoops -from conditional.util.member import req_cm +from conditional.util.member import get_required_directorship_meetings from conditional.util.auth import get_user from conditional.util.flask import render_template from conditional.util.ldap import ldap_is_eval_director, ldap_is_current_student @@ -59,7 +59,7 @@ def submit_co_op_form(user_dict=None): db.session.add(co_op) db.session.flush() db.session.commit() - req_cm.cache_clear() + get_required_directorship_meetings.cache_clear() return jsonify({"success": True}), 200 @@ -85,7 +85,7 @@ def delete_co_op(uid, user_dict=None): db.session.flush() db.session.commit() - req_cm.cache_clear() + get_required_directorship_meetings.cache_clear() return jsonify({"success": True}), 200 diff --git a/conditional/blueprints/dashboard.py b/conditional/blueprints/dashboard.py index fbffde8..3e63af4 100644 --- a/conditional/blueprints/dashboard.py +++ b/conditional/blueprints/dashboard.py @@ -14,7 +14,8 @@ from conditional.util.ldap import ldap_is_active from conditional.util.ldap import ldap_is_intromember from conditional.util.ldap import ldap_is_onfloor -from conditional.util.member import get_freshman_data, get_voting_members, get_cm, get_hm, req_cm +from conditional.util.member import get_freshman_data, get_voting_members, get_directorship_meetings, \ + get_house_meetings, get_required_directorship_meetings logger = structlog.get_logger() @@ -47,10 +48,10 @@ def display_dashboard(user_dict=None): data['freshman'] = None spring = {} - c_meetings = get_cm(user_dict['account']) - spring['committee_meetings'] = len(c_meetings) - spring['req_meetings'] = req_cm(user_dict['account']) - h_meetings = [(m.meeting_id, m.attendance_status) for m in get_hm(user_dict['account'])] + c_meetings = get_directorship_meetings(user_dict['account']) + spring['directorship_meetings'] = len(c_meetings) + spring['req_meetings'] = get_required_directorship_meetings(user_dict['account']) + h_meetings = [(m.meeting_id, m.attendance_status) for m in get_house_meetings(user_dict['account'])] spring['hm_missed'] = len([h for h in h_meetings if h[1] == "Absent"]) eval_entry = SpringEval.query.filter(SpringEval.uid == user_dict['account'].uid, SpringEval.date_created > start_of_year(), diff --git a/conditional/blueprints/intro_evals.py b/conditional/blueprints/intro_evals.py index 544c08c..ae2a3e4 100644 --- a/conditional/blueprints/intro_evals.py +++ b/conditional/blueprints/intro_evals.py @@ -4,9 +4,9 @@ from flask import Blueprint, request from conditional import start_of_year, auth -from conditional.models.models import CommitteeMeeting +from conditional.models.models import DirectorshipMeeting from conditional.models.models import FreshmanAccount -from conditional.models.models import FreshmanCommitteeAttendance +from conditional.models.models import FreshmanDirectorshipAttendance from conditional.models.models import FreshmanEvalData from conditional.models.models import FreshmanHouseMeetingAttendance from conditional.models.models import FreshmanSeminarAttendance @@ -17,7 +17,7 @@ from conditional.util.auth import get_user from conditional.util.flask import render_template from conditional.util.ldap import ldap_get_intro_members -from conditional.util.member import get_cm, get_hm +from conditional.util.member import get_directorship_meetings, get_house_meetings intro_evals_bp = Blueprint('intro_evals_bp', __name__) @@ -31,23 +31,25 @@ def display_intro_evals(internal=False, user_dict=None): log = logger.new(request=request, auth_dict=user_dict) log.info('Display Intro Evals Listing') - # get user data - def get_fid_cm(member): + def get_frosh_directorship_meetings(fid): + """ + Get all directorship meetings from a given frosh account id + """ c_meetings = [{ "uid": cm[0], "timestamp": cm[1], - "committee": cm[2] - } for cm in CommitteeMeeting.query.join( - FreshmanCommitteeAttendance, - FreshmanCommitteeAttendance.meeting_id == CommitteeMeeting.id + "directorship": cm[2] + } for cm in DirectorshipMeeting.query.join( + FreshmanDirectorshipAttendance, + FreshmanDirectorshipAttendance.meeting_id == DirectorshipMeeting.id ).with_entities( - FreshmanCommitteeAttendance.fid, - CommitteeMeeting.timestamp, - CommitteeMeeting.committee + FreshmanDirectorshipAttendance.fid, + DirectorshipMeeting.timestamp, + DirectorshipMeeting.directorship ).filter( - CommitteeMeeting.timestamp > start_of_year(), - FreshmanCommitteeAttendance.fid == member, - CommitteeMeeting.approved == True # pylint: disable=singleton-comparison + DirectorshipMeeting.timestamp > start_of_year(), + FreshmanDirectorshipAttendance.fid == fid, + DirectorshipMeeting.approved == True # pylint: disable=singleton-comparison ).all()] return c_meetings @@ -78,12 +80,12 @@ def get_fid_cm(member): 'uid': fid.id, 'eval_date': fid.eval_date.strftime("%Y-%m-%d"), 'signatures_missed': signatures_missed, - 'committee_meetings': [{ + 'directorship_meetings': [{ "uid": cm['uid'], "timestamp": cm['timestamp'].strftime("%Y-%m-%d"), - "committee": cm['committee'] - } for cm in get_fid_cm(fid.id)], - 'committee_meetings_passed': len(get_fid_cm(fid.id)) >= 6, + "directorship": cm['directorship'] + } for cm in get_frosh_directorship_meetings(fid.id)], + 'directorship_meetings_passed': len(get_frosh_directorship_meetings(fid.id)) >= 6, 'house_meetings_missed': [ { @@ -125,18 +127,18 @@ def get_fid_cm(member): if freshman_data.freshman_eval_result != "Pending" and internal: continue - h_meetings = [m.meeting_id for m in get_hm(member, only_absent=True)] + h_meetings = [m.meeting_id for m in get_house_meetings(member, only_absent=True)] member_info = { 'name': name, 'uid': uid, 'eval_date': freshman_data.eval_date.strftime("%Y-%m-%d"), 'signatures_missed': freshman_data.signatures_missed, - 'committee_meetings': [{ + 'directorship_meetings': [{ "uid": cm['uid'], "timestamp": cm['timestamp'].strftime("%Y-%m-%d"), - "committee": cm['committee'] - } for cm in get_cm(member)], - 'committee_meetings_passed': len(get_cm(member)) >= 6, + "directorship": cm['directorship'] + } for cm in get_directorship_meetings(member)], + 'directorship_meetings_passed': len(get_directorship_meetings(member)) >= 6, 'house_meetings_missed': [ { @@ -169,7 +171,7 @@ def get_fid_cm(member): ie_members.append(member_info) ie_members.sort(key=lambda x: len(x['house_meetings_missed'])) - ie_members.sort(key=lambda x: x['committee_meetings_passed'], reverse=True) + ie_members.sort(key=lambda x: x['directorship_meetings_passed'], reverse=True) ie_members.sort(key=lambda x: x['signatures_missed']) ie_members.sort(key=lambda x: x['status'] == "Passed") diff --git a/conditional/blueprints/member_management.py b/conditional/blueprints/member_management.py index 3f5d3d9..5a78133 100644 --- a/conditional/blueprints/member_management.py +++ b/conditional/blueprints/member_management.py @@ -10,8 +10,8 @@ from conditional.models.models import FreshmanAccount from conditional.models.models import FreshmanEvalData -from conditional.models.models import FreshmanCommitteeAttendance -from conditional.models.models import MemberCommitteeAttendance +from conditional.models.models import FreshmanDirectorshipAttendance +from conditional.models.models import MemberDirectorshipAttendance from conditional.models.models import FreshmanSeminarAttendance from conditional.models.models import MemberSeminarAttendance from conditional.models.models import FreshmanHouseMeetingAttendance @@ -340,7 +340,7 @@ def member_management_getuserinfo(uid, user_dict=None): FreshmanAccount.id == uid).first() # missed hm - def get_hm_date(hm_id): + def get_house_meetings_date(hm_id): return HouseMeeting.query.filter( HouseMeeting.id == hm_id). \ first().date.strftime("%Y-%m-%d") @@ -349,7 +349,7 @@ def get_hm_date(hm_id): if acct: missed_hm = [ { - 'date': get_hm_date(hma.meeting_id), + 'date': get_house_meetings_date(hma.meeting_id), 'id': hma.meeting_id, 'excuse': hma.excuse, 'status': hma.attendance_status @@ -378,7 +378,7 @@ def get_hm_date(hm_id): if ldap_is_eval_director(ldap_get_member(user_dict['username'])): missed_hm = [ { - 'date': get_hm_date(hma.meeting_id), + 'date': get_house_meetings_date(hma.meeting_id), 'id': hma.meeting_id, 'excuse': hma.excuse, 'status': hma.attendance_status @@ -424,7 +424,7 @@ def member_management_deleteuser(fid, user_dict=None): log.info('backend', action="delete freshman account %s" % fid) - for fca in FreshmanCommitteeAttendance.query.filter(FreshmanCommitteeAttendance.fid == fid): + for fca in FreshmanDirectorshipAttendance.query.filter(FreshmanDirectorshipAttendance.fid == fid): db.session.delete(fca) for fts in FreshmanSeminarAttendance.query.filter(FreshmanSeminarAttendance.fid == fid): @@ -467,8 +467,8 @@ def member_management_upgrade_user(user_dict=None): new_acct.eval_date = acct.eval_date db.session.add(new_acct) - for fca in FreshmanCommitteeAttendance.query.filter(FreshmanCommitteeAttendance.fid == fid): - db.session.add(MemberCommitteeAttendance(uid, fca.meeting_id)) + for fca in FreshmanDirectorshipAttendance.query.filter(FreshmanDirectorshipAttendance.fid == fid): + db.session.add(MemberDirectorshipAttendance(uid, fca.meeting_id)) db.session.delete(fca) for fts in FreshmanSeminarAttendance.query.filter(FreshmanSeminarAttendance.fid == fid): diff --git a/conditional/blueprints/spring_evals.py b/conditional/blueprints/spring_evals.py index e8c6e1d..a087d0d 100644 --- a/conditional/blueprints/spring_evals.py +++ b/conditional/blueprints/spring_evals.py @@ -9,7 +9,7 @@ from conditional.util.auth import get_user from conditional.util.flask import render_template from conditional.util.ldap import ldap_get_active_members -from conditional.util.member import get_cm, get_hm, req_cm +from conditional.util.member import get_directorship_meetings, get_house_meetings, get_required_directorship_meetings spring_evals_bp = Blueprint('spring_evals_bp', __name__) @@ -43,13 +43,13 @@ def display_spring_evals(internal=False, user_dict=None): eval_data = None - h_meetings = [m.meeting_id for m in get_hm(account, only_absent=True)] + h_meetings = [m.meeting_id for m in get_house_meetings(account, only_absent=True)] member = { 'name': account.cn, 'uid': uid, 'status': spring_entry.status, - 'committee_meetings': len(get_cm(account)), - 'req_meetings': req_cm(account), + 'directorship_meetings': len(get_directorship_meetings(account)), + 'req_meetings': get_required_directorship_meetings(account), 'house_meetings_missed': [ { @@ -93,7 +93,7 @@ def display_spring_evals(internal=False, user_dict=None): member['housing_evals'] = eval_data sp_members.append(member) - sp_members.sort(key=lambda x: x['committee_meetings'], reverse=True) + sp_members.sort(key=lambda x: x['directorship_meetings'], reverse=True) sp_members.sort(key=lambda x: len(x['house_meetings_missed'])) sp_members.sort(key=lambda x: len([p for p in x['major_projects'] if p['status'] == "Passed"]), reverse=True) # return names in 'first last (username)' format diff --git a/conditional/models/docs.md b/conditional/models/docs.md index 33697e1..9ffd206 100644 --- a/conditional/models/docs.md +++ b/conditional/models/docs.md @@ -26,34 +26,34 @@ This table stores the evaluations data for freshmen before they pass their 10-we | `active` | `BOOLEAN` | Determines whether the freshman account is currently active / displayed. -## CommitteeMeetings table ## -This table stores a list of committee meetings. +## DirectorshipMeetings table ## +This table stores a list of directorship meetings. | Field | Type | Description | | ------------- | ------------- | ------------------- | | `id` | `INTEGER` | Autoincrementing primary key. -| `committee` | `ENUM` | The committee the meeting belongs to. +| `directorship` | `ENUM` | The directorship the meeting belongs to. | `timestamp` | `TIMESTAMP` | The date and time of the meeting. | `active` | `BOOLEAN` | Whether the meeting applies to the current year or not. -## MemberCommitteeAttendance table ## -This table stores attendance for committee meetings for full members (i.e. +## MemberDirectorshipAttendance table ## +This table stores attendance for directorship meetings for full members (i.e. non-freshmen). | Field | Type | Description | | ------------- | ------------- | ------------------- | | `id` | `INTEGER` | Autoincrementing primary key. | `uid` | `VARCHAR(32)` | The LDAP uid (i.e. username) of the member who attended the meeting. -| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`committee_meetings.id`). +| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`directorship_meetings.id`). -## FreshmanCommitteeAttendance table ## -This table stores attendance for committee meetings for freshmen. +## FreshmanDirectorshipAttendance table ## +This table stores attendance for directorship meetings for freshmen. | Field | Type | Description | | ------------- | ------------- | ------------------- | | `id` | `INTEGER` | Autoincrementing primary key. | `fid` | `INTEGER` | Foreign key referencing the freshman account for the freshman who attended (`freshman_accounts.id`). -| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`committee_meetings.id`). +| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`directorship_meetings.id`). ## TechnicalSeminar table ## @@ -81,7 +81,7 @@ Stores seminar attendance for freshmen. | ------------- | ------------- | ------------------- | | `id` | `INTEGER` | Autoincrementing primary key. | `fid` | `INTEGER` | Foreign key referencing the freshman who attended the seminar (`freshman_accounts.id`). -| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`committee_meetings.id`). +| `meeting_id` | `INTEGER` | Foreign key referencing the meeting that was attended (`directorship_meetings.id`). ## MajorProject table ## Stores major projects through their entire lifetime. @@ -181,7 +181,7 @@ Records the yearly results of member's spring evaluations. * Not in LDAP Current Student group: * Alumni. Don't track attendance. * In LDAP Current Student group and in Co-Op Table: - * On coop. Track committee + * On coop. Track directorship meeting attendance, but not house meeting. * In LDAP Current Student group but not in LDAP Active Group: * Present but not active diff --git a/conditional/models/models.py b/conditional/models/models.py index e3124f2..a60e7f2 100644 --- a/conditional/models/models.py +++ b/conditional/models/models.py @@ -52,39 +52,39 @@ def __init__(self, uid, signatures_missed): self.active = True -class CommitteeMeeting(db.Model): - __tablename__ = 'committee_meetings' +class DirectorshipMeeting(db.Model): + __tablename__ = 'directorship_meetings' id = Column(Integer, primary_key=True) - committee = Column(Enum('Evaluations', 'History', 'Social', 'Opcomm', - 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="committees_enum"), + directorship = Column(Enum('Evaluations', 'History', 'Social', 'Opcomm', + 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="directorships_enum"), nullable=False) timestamp = Column(DateTime, nullable=False) approved = Column(Boolean, nullable=False) active = Column(Boolean) - def __init__(self, committee, timestamp, approved): - self.committee = committee + def __init__(self, directorship, timestamp, approved): + self.directorship = directorship self.timestamp = timestamp self.approved = approved self.active = True -class MemberCommitteeAttendance(db.Model): - __tablename__ = 'member_committee_attendance' +class MemberDirectorshipAttendance(db.Model): + __tablename__ = 'member_directorship_attendance' id = Column(Integer, primary_key=True) uid = Column(String(32), nullable=False) - meeting_id = Column(ForeignKey('committee_meetings.id'), nullable=False) + meeting_id = Column(ForeignKey('directorship_meetings.id'), nullable=False) def __init__(self, uid, meeting_id): self.uid = uid self.meeting_id = meeting_id -class FreshmanCommitteeAttendance(db.Model): - __tablename__ = 'freshman_committee_attendance' +class FreshmanDirectorshipAttendance(db.Model): + __tablename__ = 'freshman_directorship_attendance' id = Column(Integer, primary_key=True) fid = Column(ForeignKey('freshman_accounts.id'), nullable=False) - meeting_id = Column(ForeignKey('committee_meetings.id'), nullable=False) + meeting_id = Column(ForeignKey('directorship_meetings.id'), nullable=False) def __init__(self, fid, meeting_id): self.fid = fid diff --git a/conditional/models/old_models.py b/conditional/models/old_models.py index 59b77b4..c63c13d 100644 --- a/conditional/models/old_models.py +++ b/conditional/models/old_models.py @@ -8,14 +8,14 @@ class Attendance(Base): __tablename__ = 'attendance' username = Column(String(100), nullable=False, primary_key=True) meeting_date = Column(Date, nullable=False, primary_key=True) - committee_id = Column(Integer, nullable=False, primary_key=True) + directorship_id = Column(Integer, nullable=False, primary_key=True) -class Committee(Base): - __tablename__ = 'committees' +class Directorship(Base): + __tablename__ = 'directorships' ID = Column(Integer, primary_key=True, nullable=False) - committee_name = Column(Text, nullable=False) - committee_head = Column(Text, nullable=False) + directorship_name = Column(Text, nullable=False) + directorship_head = Column(Text, nullable=False) class Conditional(Base): @@ -57,7 +57,7 @@ class MajorProject(Base): __tablename__ = 'major_project' username = Column(String(100), nullable=False, primary_key=True) timestamp = Column(DateTime, nullable=False) - project_committee = Column(Text) + project_directorship = Column(Text) project_name = Column(String(200), nullable=False, primary_key=True) project_description = Column(Text) status = Column(Enum('pending', 'pass', 'fail'), nullable=False) @@ -71,7 +71,7 @@ class Member(Base): voting = Column(Integer, nullable=False) alumniable = Column(Integer, nullable=False) housing_points = Column(Integer, nullable=False) - committee_mtgs = Column(Integer, nullable=False) + directorship_mtgs = Column(Integer, nullable=False) class Queue(Base): diff --git a/conditional/templates/attendance_cm.html b/conditional/templates/attendance_cm.html index ab15b0b..014569a 100644 --- a/conditional/templates/attendance_cm.html +++ b/conditional/templates/attendance_cm.html @@ -5,15 +5,15 @@ {% block body %}

Meeting Attendance

-
+
- - diff --git a/conditional/templates/dashboard.html b/conditional/templates/dashboard.html index 3069b9e..f79ce61 100644 --- a/conditional/templates/dashboard.html +++ b/conditional/templates/dashboard.html @@ -61,9 +61,9 @@

Freshman Evaluations

Directorship Meetings - {% if freshman['committee_meetings'] >= 6 %} + {% if freshman['directorship_meetings'] >= 6 %} {% else %} - {% endif %} {{freshman['committee_meetings']}} / 6 + {% endif %} {{freshman['directorship_meetings']}} / 6
Directorship Meetings - {% if spring['committee_meetings'] >= spring['req_meetings'] %} + {% if spring['directorship_meetings'] >= spring['req_meetings'] %} {% else %} - {% endif %} {{ spring['committee_meetings'] }} / {{ spring['req_meetings'] }} + {% endif %} {{ spring['directorship_meetings'] }} / {{ spring['req_meetings'] }}
{{meeting['committee']}}{{meeting['directorship']}} {{meeting['timestamp'].strftime('%Y-%m-%d')}}
{% endif %} - {% if m['committee_meetings']|length > 0 %} + {% if m['directorship_meetings']|length > 0 %}

Directorship Meetings

@@ -146,10 +146,10 @@

Directorship Meetings

- {% for meeting in m['committee_meetings'] %} + {% for meeting in m['directorship_meetings'] %} - + {% endfor %} @@ -222,11 +222,11 @@

Other Comments

Failed {% endif %} - -
{{meeting['timestamp']}}{{meeting['committee']}}{{meeting['directorship']}}
- {% if m['committee_meetings']|length < 6 %} - {{m['committee_meetings']|length}} + + {% if m['directorship_meetings']|length < 6 %} + {{m['directorship_meetings']|length}} {% else %} - {{m['committee_meetings']|length}} + {{m['directorship_meetings']|length}} {% endif %} diff --git a/conditional/templates/spring_eval_slideshow.html b/conditional/templates/spring_eval_slideshow.html index 25508ca..b4dceeb 100644 --- a/conditional/templates/spring_eval_slideshow.html +++ b/conditional/templates/spring_eval_slideshow.html @@ -15,10 +15,10 @@

{{m['name']}}

- {% set committee_meetings_passed = m['committee_meetings'] >= m['req_meetings'] %} -
- -

{{m['committee_meetings']}}

+ {% set directorship_meetings_passed = m['directorship_meetings'] >= m['req_meetings'] %} +
+ +

{{m['directorship_meetings']}}

Meetings

diff --git a/conditional/templates/spring_evals.html b/conditional/templates/spring_evals.html index 55067ae..69f4a6f 100644 --- a/conditional/templates/spring_evals.html +++ b/conditional/templates/spring_evals.html @@ -47,15 +47,15 @@
{{m['uid']}}
- {% if m['committee_meetings'] < m['req_meetings'] %} + {% if m['directorship_meetings'] < m['req_meetings'] %}
Directorship Meetings - {{m['committee_meetings']}} / {{m['req_meetings']}} + {{m['directorship_meetings']}} / {{m['req_meetings']}}
{% else %}
Directorship Meetings - {{m['committee_meetings']}} / {{m['req_meetings']}} + {{m['directorship_meetings']}} / {{m['req_meetings']}}
{% endif %} @@ -211,11 +211,11 @@

Major Projects

Failed {% endif %}
- {% if m['committee_meetings'] < m['req_meetings'] %} - {{m['committee_meetings']}} + + {% if m['directorship_meetings'] < m['req_meetings'] %} + {{m['directorship_meetings']}} {% else %} - {{m['committee_meetings']}} + {{m['directorship_meetings']}} {% endif %} diff --git a/conditional/util/flask.py b/conditional/util/flask.py index 1ebc0dd..39c32a5 100644 --- a/conditional/util/flask.py +++ b/conditional/util/flask.py @@ -12,7 +12,7 @@ from conditional.util.ldap import ldap_is_intromember from conditional.util.ldap import ldap_is_rtp -from conditional.models.models import CommitteeMeeting +from conditional.models.models import DirectorshipMeeting from conditional.models.models import TechnicalSeminar from conditional import db @@ -35,8 +35,8 @@ def render_template(template_name, user_dict=None, **kwargs): is_intromember = ldap_is_intromember(user_dict['account']) is_rtp = ldap_is_rtp(user_dict['account']) - cm_review = len(CommitteeMeeting.query.filter( - CommitteeMeeting.approved == False).all()) # pylint: disable=singleton-comparison + cm_review = len(DirectorshipMeeting.query.filter( + DirectorshipMeeting.approved == False).all()) # pylint: disable=singleton-comparison ts_review = len(TechnicalSeminar.query.filter( TechnicalSeminar.approved == False).all()) # pylint: disable=singleton-comparison diff --git a/conditional/util/member.py b/conditional/util/member.py index 1c4ae8c..a825d8e 100644 --- a/conditional/util/member.py +++ b/conditional/util/member.py @@ -1,11 +1,11 @@ from datetime import datetime from conditional import start_of_year -from conditional.models.models import CommitteeMeeting +from conditional.models.models import DirectorshipMeeting from conditional.models.models import CurrentCoops from conditional.models.models import FreshmanEvalData from conditional.models.models import HouseMeeting -from conditional.models.models import MemberCommitteeAttendance +from conditional.models.models import MemberDirectorshipAttendance from conditional.models.models import MemberHouseMeetingAttendance from conditional.models.models import MemberSeminarAttendance from conditional.models.models import TechnicalSeminar @@ -78,13 +78,13 @@ def get_freshman_data(user_name): if freshman_data is None: return None freshman['status'] = freshman_data.freshman_eval_result - # number of committee meetings attended + # number of directorship meetings attended c_meetings = [m.meeting_id for m in - MemberCommitteeAttendance.query.filter( - MemberCommitteeAttendance.uid == user_name - ) if CommitteeMeeting.query.filter( - CommitteeMeeting.id == m.meeting_id).first().approved] - freshman['committee_meetings'] = len(c_meetings) + MemberDirectorshipAttendance.query.filter( + MemberDirectorshipAttendance.uid == user_name + ) if DirectorshipMeeting.query.filter( + DirectorshipMeeting.id == m.meeting_id).first().approved] + freshman['directorship_meetings'] = len(c_meetings) # technical seminar total t_seminars = [s.seminar_id for s in MemberSeminarAttendance.query.filter( @@ -115,27 +115,27 @@ def get_onfloor_members(): if uid in [members.uid for members in ldap_get_onfloor_members()]] -def get_cm(member): +def get_directorship_meetings(member): c_meetings = [{ "uid": cm.uid, "timestamp": cm.timestamp, - "committee": cm.committee - } for cm in CommitteeMeeting.query.join( - MemberCommitteeAttendance, - MemberCommitteeAttendance.meeting_id == CommitteeMeeting.id + "directorship": cm.directorship + } for cm in DirectorshipMeeting.query.join( + MemberDirectorshipAttendance, + MemberDirectorshipAttendance.meeting_id == DirectorshipMeeting.id ).with_entities( - MemberCommitteeAttendance.uid, - CommitteeMeeting.timestamp, - CommitteeMeeting.committee + MemberDirectorshipAttendance.uid, + DirectorshipMeeting.timestamp, + DirectorshipMeeting.directorship ).filter( - CommitteeMeeting.timestamp > start_of_year(), - MemberCommitteeAttendance.uid == member.uid, - CommitteeMeeting.approved == True # pylint: disable=singleton-comparison + DirectorshipMeeting.timestamp > start_of_year(), + MemberDirectorshipAttendance.uid == member.uid, + DirectorshipMeeting.approved == True # pylint: disable=singleton-comparison ).all()] return c_meetings -def get_hm(member, only_absent=False): +def get_house_meetings(member, only_absent=False): h_meetings = MemberHouseMeetingAttendance.query.outerjoin( HouseMeeting, MemberHouseMeetingAttendance.meeting_id == HouseMeeting.id).with_entities( @@ -150,8 +150,8 @@ def get_hm(member, only_absent=False): @service_cache(maxsize=128) -def req_cm(member): - # Get the number of required committee meetings based on if the member +def get_required_directorship_meetings(member): + # Get the number of required directorship meetings based on if the member # is going on co-op in the current operating session. co_op = CurrentCoops.query.filter( CurrentCoops.uid == member.uid, diff --git a/frontend/javascript/modules/attendanceForm.js b/frontend/javascript/modules/attendanceForm.js index 5175a15..3d33404 100644 --- a/frontend/javascript/modules/attendanceForm.js +++ b/frontend/javascript/modules/attendanceForm.js @@ -12,9 +12,9 @@ export default class AttendanceForm { this.endpoint = ''; - if (this.form.dataset.type === "committee") { + if (this.form.dataset.type === "directorship") { this.endpoint = '/attendance/submit/cm'; - this.fields.committee = this.form.elements.committee; + this.fields.directorship = this.form.elements.directorship; } else if (this.form.dataset.type === "seminar") { this.endpoint = '/attendance/submit/ts'; this.fields.name = this.form.elements.name; diff --git a/migrations/versions/3eaae92ce6b3_ad_hoc.py b/migrations/versions/3eaae92ce6b3_ad_hoc.py index e0916a1..132715b 100644 --- a/migrations/versions/3eaae92ce6b3_ad_hoc.py +++ b/migrations/versions/3eaae92ce6b3_ad_hoc.py @@ -18,14 +18,14 @@ def upgrade(): - op.alter_column('committee_meetings', 'committee', + op.alter_column('directorship_meetings', 'directorship', existing_type=postgresql.ENUM('Evaluations', 'History', 'Social', 'Opcomm', - 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="committees_enum"), + 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="directorships_enum"), nullable=False) def downgrade(): - op.alter_column('committee_meetings', 'committee', + op.alter_column('directorship_meetings', 'directorship', existing_type=postgresql.Enum('Evaluations', 'History', 'Social', 'Opcomm', - 'R&D', 'House Improvements', 'Financial', 'Chairman', name="committees_enum"), + 'R&D', 'House Improvements', 'Financial', 'Chairman', name="directorships_enum"), nullable=False) diff --git a/migrations/versions/9c57eb87e918_.py b/migrations/versions/9c57eb87e918_.py index 467d1de..cb3cde7 100644 --- a/migrations/versions/9c57eb87e918_.py +++ b/migrations/versions/9c57eb87e918_.py @@ -16,9 +16,9 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### - op.create_table('committee_meetings', + op.create_table('directorship_meetings', sa.Column('id', sa.Integer(), nullable=False), - sa.Column('committee', sa.Enum('Evaluations', 'History', 'Social', 'Opcomm', 'R&D', 'House Improvements', 'Financial', 'Chairman', name='committees_enum'), nullable=False), + sa.Column('directorship', sa.Enum('Evaluations', 'History', 'Social', 'Opcomm', 'R&D', 'House Improvements', 'Financial', 'Chairman', name='directorships_enum'), nullable=False), sa.Column('timestamp', sa.DateTime(), nullable=False), sa.Column('active', sa.Boolean(), nullable=True), sa.PrimaryKeyConstraint('id') @@ -116,12 +116,12 @@ def upgrade(): sa.Column('active', sa.Boolean(), nullable=True), sa.PrimaryKeyConstraint('id') ) - op.create_table('freshman_committee_attendance', + op.create_table('freshman_directorship_attendance', sa.Column('id', sa.Integer(), nullable=False), sa.Column('fid', sa.Integer(), nullable=False), sa.Column('meeting_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['fid'], ['freshman_accounts.id'], ), - sa.ForeignKeyConstraint(['meeting_id'], ['committee_meetings.id'], ), + sa.ForeignKeyConstraint(['meeting_id'], ['directorship_meetings.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('freshman_hm_attendance', @@ -142,11 +142,11 @@ def upgrade(): sa.ForeignKeyConstraint(['seminar_id'], ['technical_seminars.id'], ), sa.PrimaryKeyConstraint('id') ) - op.create_table('member_committee_attendance', + op.create_table('member_directorship_attendance', sa.Column('id', sa.Integer(), nullable=False), sa.Column('uid', sa.String(length=32), nullable=False), sa.Column('meeting_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['meeting_id'], ['committee_meetings.id'], ), + sa.ForeignKeyConstraint(['meeting_id'], ['directorship_meetings.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('member_hm_attendance', @@ -172,10 +172,10 @@ def downgrade(): ### commands auto generated by Alembic - please adjust! ### op.drop_table('member_seminar_attendance') op.drop_table('member_hm_attendance') - op.drop_table('member_committee_attendance') + op.drop_table('member_directorship_attendance') op.drop_table('freshman_seminar_attendance') op.drop_table('freshman_hm_attendance') - op.drop_table('freshman_committee_attendance') + op.drop_table('freshman_directorship_attendance') op.drop_table('technical_seminars') op.drop_table('spring_evals') op.drop_table('settings') @@ -187,5 +187,5 @@ def downgrade(): op.drop_table('freshman_accounts') op.drop_table('current_coops') op.drop_table('conditional') - op.drop_table('committee_meetings') + op.drop_table('directorship_meetings') ### end Alembic commands ### diff --git a/migrations/versions/e72e5d4d71f2_.py b/migrations/versions/e72e5d4d71f2_.py index a948df1..3049abd 100644 --- a/migrations/versions/e72e5d4d71f2_.py +++ b/migrations/versions/e72e5d4d71f2_.py @@ -15,13 +15,13 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### - op.add_column('committee_meetings', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) + op.add_column('directorship_meetings', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) op.add_column('technical_seminars', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) ### end Alembic commands ### def downgrade(): ### commands auto generated by Alembic - please adjust! ### - op.drop_column('committee_meetings', 'approved') + op.drop_column('directorship_meetings', 'approved') op.drop_column('technical_seminars', 'approved') ### end Alembic commands ### From 55c16c21cc253b4d6f37fcf6217c57f95b106068 Mon Sep 17 00:00:00 2001 From: Joe Abbate Date: Sun, 27 Mar 2022 15:20:24 -0400 Subject: [PATCH 3/3] Fix Migrations for Rename --- migrations/versions/3eaae92ce6b3_ad_hoc.py | 8 ++--- migrations/versions/9c57eb87e918_.py | 18 +++++------ migrations/versions/e72e5d4d71f2_.py | 4 +-- ...1e2a38_rename_committee_to_directorship.py | 30 +++++++++++++++++++ 4 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 migrations/versions/ecad721e2a38_rename_committee_to_directorship.py diff --git a/migrations/versions/3eaae92ce6b3_ad_hoc.py b/migrations/versions/3eaae92ce6b3_ad_hoc.py index 132715b..e0916a1 100644 --- a/migrations/versions/3eaae92ce6b3_ad_hoc.py +++ b/migrations/versions/3eaae92ce6b3_ad_hoc.py @@ -18,14 +18,14 @@ def upgrade(): - op.alter_column('directorship_meetings', 'directorship', + op.alter_column('committee_meetings', 'committee', existing_type=postgresql.ENUM('Evaluations', 'History', 'Social', 'Opcomm', - 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="directorships_enum"), + 'R&D', 'House Improvements', 'Financial', 'Chairman', 'Ad-Hoc', name="committees_enum"), nullable=False) def downgrade(): - op.alter_column('directorship_meetings', 'directorship', + op.alter_column('committee_meetings', 'committee', existing_type=postgresql.Enum('Evaluations', 'History', 'Social', 'Opcomm', - 'R&D', 'House Improvements', 'Financial', 'Chairman', name="directorships_enum"), + 'R&D', 'House Improvements', 'Financial', 'Chairman', name="committees_enum"), nullable=False) diff --git a/migrations/versions/9c57eb87e918_.py b/migrations/versions/9c57eb87e918_.py index cb3cde7..467d1de 100644 --- a/migrations/versions/9c57eb87e918_.py +++ b/migrations/versions/9c57eb87e918_.py @@ -16,9 +16,9 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### - op.create_table('directorship_meetings', + op.create_table('committee_meetings', sa.Column('id', sa.Integer(), nullable=False), - sa.Column('directorship', sa.Enum('Evaluations', 'History', 'Social', 'Opcomm', 'R&D', 'House Improvements', 'Financial', 'Chairman', name='directorships_enum'), nullable=False), + sa.Column('committee', sa.Enum('Evaluations', 'History', 'Social', 'Opcomm', 'R&D', 'House Improvements', 'Financial', 'Chairman', name='committees_enum'), nullable=False), sa.Column('timestamp', sa.DateTime(), nullable=False), sa.Column('active', sa.Boolean(), nullable=True), sa.PrimaryKeyConstraint('id') @@ -116,12 +116,12 @@ def upgrade(): sa.Column('active', sa.Boolean(), nullable=True), sa.PrimaryKeyConstraint('id') ) - op.create_table('freshman_directorship_attendance', + op.create_table('freshman_committee_attendance', sa.Column('id', sa.Integer(), nullable=False), sa.Column('fid', sa.Integer(), nullable=False), sa.Column('meeting_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['fid'], ['freshman_accounts.id'], ), - sa.ForeignKeyConstraint(['meeting_id'], ['directorship_meetings.id'], ), + sa.ForeignKeyConstraint(['meeting_id'], ['committee_meetings.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('freshman_hm_attendance', @@ -142,11 +142,11 @@ def upgrade(): sa.ForeignKeyConstraint(['seminar_id'], ['technical_seminars.id'], ), sa.PrimaryKeyConstraint('id') ) - op.create_table('member_directorship_attendance', + op.create_table('member_committee_attendance', sa.Column('id', sa.Integer(), nullable=False), sa.Column('uid', sa.String(length=32), nullable=False), sa.Column('meeting_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['meeting_id'], ['directorship_meetings.id'], ), + sa.ForeignKeyConstraint(['meeting_id'], ['committee_meetings.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('member_hm_attendance', @@ -172,10 +172,10 @@ def downgrade(): ### commands auto generated by Alembic - please adjust! ### op.drop_table('member_seminar_attendance') op.drop_table('member_hm_attendance') - op.drop_table('member_directorship_attendance') + op.drop_table('member_committee_attendance') op.drop_table('freshman_seminar_attendance') op.drop_table('freshman_hm_attendance') - op.drop_table('freshman_directorship_attendance') + op.drop_table('freshman_committee_attendance') op.drop_table('technical_seminars') op.drop_table('spring_evals') op.drop_table('settings') @@ -187,5 +187,5 @@ def downgrade(): op.drop_table('freshman_accounts') op.drop_table('current_coops') op.drop_table('conditional') - op.drop_table('directorship_meetings') + op.drop_table('committee_meetings') ### end Alembic commands ### diff --git a/migrations/versions/e72e5d4d71f2_.py b/migrations/versions/e72e5d4d71f2_.py index 3049abd..a948df1 100644 --- a/migrations/versions/e72e5d4d71f2_.py +++ b/migrations/versions/e72e5d4d71f2_.py @@ -15,13 +15,13 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### - op.add_column('directorship_meetings', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) + op.add_column('committee_meetings', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) op.add_column('technical_seminars', sa.Column('approved', sa.Boolean(), server_default=sa.sql.expression.true(), nullable=False)) ### end Alembic commands ### def downgrade(): ### commands auto generated by Alembic - please adjust! ### - op.drop_column('directorship_meetings', 'approved') + op.drop_column('committee_meetings', 'approved') op.drop_column('technical_seminars', 'approved') ### end Alembic commands ### diff --git a/migrations/versions/ecad721e2a38_rename_committee_to_directorship.py b/migrations/versions/ecad721e2a38_rename_committee_to_directorship.py new file mode 100644 index 0000000..ffb43bd --- /dev/null +++ b/migrations/versions/ecad721e2a38_rename_committee_to_directorship.py @@ -0,0 +1,30 @@ +"""rename committee to directorship + +Revision ID: ecad721e2a38 +Revises: 3eaae92ce6b3 +Create Date: 2022-03-27 15:12:33.584620 + +""" + +# revision identifiers, used by Alembic. +revision = 'ecad721e2a38' +down_revision = '3eaae92ce6b3' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.rename_table('freshman_committee_attendance', 'freshman_directorship_attendance') + op.rename_table('committee_meetings', 'directorship_meetings') + op.rename_table('member_committee_attendance', 'member_directorship_attendance') + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.rename_table('freshman_directorship_attendance', 'freshman_committee_attendance') + op.rename_table('directorship_meetings', 'committee_meetings') + op.rename_table('member_directorship_attendance', 'member_committee_attendance') + # ### end Alembic commands ###