From b2a1d94de97412e86e9edc3cb5fe378bfcec4c2e Mon Sep 17 00:00:00 2001 From: "Noah Hanford (spaced)" Date: Thu, 26 Mar 2026 23:33:46 -0400 Subject: [PATCH 01/48] working nav --- conditional/templates/attendance_cm.html | 2 +- conditional/templates/base.html | 1 + conditional/templates/base_protected.html | 1 + conditional/templates/dashboard.html | 2 +- conditional/templates/nav.html | 20 +- conditional/templates/nav_protected.html | 213 +- conditional/util/user_dict.py | 1 + frontend/stylesheets/components/_select.scss | 134 +- .../components/sweet-alert/_sweet-alert.scss | 528 ++-- frontend/stylesheets/pages/_management.scss | 17 - frontend/stylesheets/partials/_base.scss | 7 - package-lock.json | 2194 +++++++---------- package.json | 4 +- 13 files changed, 1382 insertions(+), 1742 deletions(-) diff --git a/conditional/templates/attendance_cm.html b/conditional/templates/attendance_cm.html index 80c26ea1..de85dc13 100644 --- a/conditional/templates/attendance_cm.html +++ b/conditional/templates/attendance_cm.html @@ -3,7 +3,7 @@ Directorship Meeting Attendance {% endblock %} {% block body %} -
+

Meeting Attendance

diff --git a/conditional/templates/base.html b/conditional/templates/base.html index 8624a50d..a3a87496 100644 --- a/conditional/templates/base.html +++ b/conditional/templates/base.html @@ -9,6 +9,7 @@ + {% block extraHeader %} diff --git a/conditional/templates/base_protected.html b/conditional/templates/base_protected.html index 77926c1b..a3ae07e8 100644 --- a/conditional/templates/base_protected.html +++ b/conditional/templates/base_protected.html @@ -9,6 +9,7 @@ + {% block extraHeader %} diff --git a/conditional/templates/dashboard.html b/conditional/templates/dashboard.html index 2b663661..f18774fc 100644 --- a/conditional/templates/dashboard.html +++ b/conditional/templates/dashboard.html @@ -3,7 +3,7 @@ Dashboard {% endblock %} {% block body %} -
+
diff --git a/conditional/templates/nav.html b/conditional/templates/nav.html index 0b0b400b..a581a337 100644 --- a/conditional/templates/nav.html +++ b/conditional/templates/nav.html @@ -1,15 +1,17 @@ {% extends "base.html" %} {% block nav %} -
-
-
{% endblock %} diff --git a/frontend/javascript/app.js b/frontend/javascript/app.js index 28de75e4..0bd0d868 100644 --- a/frontend/javascript/app.js +++ b/frontend/javascript/app.js @@ -16,6 +16,8 @@ import "jquery"; import "bootstrap"; import "./modules"; +import "masonry-layout"; + // Load fonts import "bootstrap-icons/font/fonts/bootstrap-icons.woff" import "bootstrap-icons/font/fonts/bootstrap-icons.woff2" diff --git a/frontend/javascript/modules/masonry.js b/frontend/javascript/modules/masonry.js deleted file mode 100644 index a4ded294..00000000 --- a/frontend/javascript/modules/masonry.js +++ /dev/null @@ -1,57 +0,0 @@ -import SimpleMasonry from "simple-masonry"; -import FreqencyMap from "../models/frequencyMap"; -import Exception from "../exceptions/exception"; -import MasonryException from "../exceptions/masonryException"; - -export default class Masonry { - constructor(grid) { - this.grid = grid; - - this.masonry = new SimpleMasonry({ - masonryBox: this.grid, - masonryColumn: this._findSharedSelector(this.grid) - }); - - this.render(); - } - - render() { - this.masonry.init(); - } - - _findSharedSelector(parent) { - let selectors = new FreqencyMap(); - let sharedSelector = null; - - try { - parent.childNodes.forEach(child => { - if (child.tagName) { - selectors.increment(child.tagName); - } - - if (child.id) { - selectors.increment("#" + child.id); - } - - if (child.className) { - child.className.split(/\s+/).forEach(className => { - selectors.increment("." + className); - }); - } - }); - - sharedSelector = selectors.getHighest(); - } catch (e) { - throw new Exception( - MasonryException.CANT_FIND_SHARED_SELECTOR, - e.message - ); - } - - if (sharedSelector === null) { - throw new Exception(MasonryException.CANT_FIND_SHARED_SELECTOR); - } else { - return sharedSelector; - } - } -} diff --git a/frontend/javascript/modules/table.js b/frontend/javascript/modules/table.js index 7cdae7f4..eb06ac03 100644 --- a/frontend/javascript/modules/table.js +++ b/frontend/javascript/modules/table.js @@ -1,5 +1,5 @@ /* global $ */ -import DataTable from "datatables.net-bs"; +import DataTable from "datatables.net-bs5"; export default class Table { constructor(table) { diff --git a/frontend/stylesheets/app.scss b/frontend/stylesheets/app.scss index 0a51ae18..c17a7dcc 100644 --- a/frontend/stylesheets/app.scss +++ b/frontend/stylesheets/app.scss @@ -1,6 +1,6 @@ // Third Party @use 'csh-material-bootstrap.css'; -@use 'dataTables.bootstrap.css'; +@use 'dataTables.bootstrap5.css'; @use 'bootstrap-material-datetimepicker.css'; $bootstrap-icons-font-dir: "../fonts/"; diff --git a/package-lock.json b/package-lock.json index d44fb2ff..b33574a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,13 +14,13 @@ "bootstrap-material-datetimepicker": "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/T00rk/bootstrap-material-datetimepicker.git#gh-pages", "bootstrap-sweetalert": "^1.0.1", "csh-material-bootstrap": "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/ComputerScienceHouse/csh-material-bootstrap.git#bootstrap-5", - "datatables.net-bs": "^2.3.7", + "datatables.net-bs5": "^2.3.7", "dropzone": "^5.9.3", "enumify": "^2.0.0", "jquery": "^3.7.1", "lodash": "4.17.23", + "masonry-layout": "^4.2.2", "reveal.js": "^5.2.1", - "simple-masonry": "1.0.5", "whatwg-fetch": "^3.6.20" }, "devDependencies": { @@ -3027,10 +3027,10 @@ "jquery": ">=1.7" } }, - "node_modules/datatables.net-bs": { + "node_modules/datatables.net-bs5": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/datatables.net-bs/-/datatables.net-bs-2.3.7.tgz", - "integrity": "sha512-tNnoD/iOVDyXPKVJ2nmpv3w6VeT1QLqUTjMdIBORBdoisAztn41TCGhdj8rQKfCrtBEQq3Z6eL99pcaQPnetnA==", + "resolved": "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.7.tgz", + "integrity": "sha512-RiCEMpMXDBeMDwjSrMpmcXDU6mibRMuOn7Wk7k3SlOfLEY3FQHO7S2m+K7teXYeaNlCLyjJMU+6BUUwlBCpLFw==", "license": "MIT", "dependencies": { "datatables.net": "2.3.7", @@ -3062,6 +3062,12 @@ "dev": true, "license": "MIT" }, + "node_modules/desandro-matches-selector": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz", + "integrity": "sha512-+1q0nXhdzg1IpIJdMKalUwvvskeKnYyEe3shPRwedNcWtnhEKT3ZxvFjzywHDeGcKViIxTCAoOYQWP1qD7VNyg==", + "license": "MIT" + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -3315,6 +3321,12 @@ "node": ">=0.10.0" } }, + "node_modules/ev-emitter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz", + "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==", + "license": "MIT" + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -3438,6 +3450,15 @@ "url": "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/sponsors/sindresorhus" } }, + "node_modules/fizzy-ui-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz", + "integrity": "sha512-CZXDVXQ1If3/r8s0T+v+qVeMshhfcuq0rqIFgJnrtd+Bu8GmDmqMjntjUePypVtjHXKJ6V4sw9zeyox34n9aCg==", + "license": "MIT", + "dependencies": { + "desandro-matches-selector": "^2.0.0" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -3489,6 +3510,12 @@ "node": ">=6.9.0" } }, + "node_modules/get-size": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/get-size/-/get-size-2.0.3.tgz", + "integrity": "sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==", + "license": "MIT" + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3879,6 +3906,16 @@ "yallist": "^3.0.2" } }, + "node_modules/masonry-layout": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.2.tgz", + "integrity": "sha512-iGtAlrpHNyxaR19CvKC3npnEcAwszXoyJiI8ARV2ePi7fmYhIud25MHK8Zx4P0LCC4d3TNO9+rFa1KoK1OEOaA==", + "license": "MIT", + "dependencies": { + "get-size": "^2.0.2", + "outlayer": "^2.1.0" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -4017,6 +4054,17 @@ "node": ">= 0.8.0" } }, + "node_modules/outlayer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/outlayer/-/outlayer-2.1.1.tgz", + "integrity": "sha512-+GplXsCQ3VrbGujAeHEzP9SXsBmJxzn/YdDSQZL0xqBmAWBmortu2Y9Gwdp9J0bgDQ8/YNIPMoBM13nTwZfAhw==", + "license": "MIT", + "dependencies": { + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4635,12 +4683,6 @@ "node": ">=8" } }, - "node_modules/simple-masonry": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/simple-masonry/-/simple-masonry-1.0.5.tgz", - "integrity": "sha512-VW8LNFxisc83vMNF/7GBl6iGbMd0PQJRlzEEC0JSMfRJvoVLBV/rHWc7H6iM12YUrM0KNtmLx1W2NVR5NU0eHw==", - "license": "MIT" - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index e0e76850..3402c51e 100644 --- a/package.json +++ b/package.json @@ -26,13 +26,13 @@ "bootstrap-material-datetimepicker": "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/T00rk/bootstrap-material-datetimepicker.git#gh-pages", "bootstrap-sweetalert": "^1.0.1", "csh-material-bootstrap": "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/ComputerScienceHouse/csh-material-bootstrap.git#bootstrap-5", - "datatables.net-bs": "^2.3.7", + "datatables.net-bs5": "^2.3.7", "dropzone": "^5.9.3", "enumify": "^2.0.0", "jquery": "^3.7.1", "lodash": "4.17.23", + "masonry-layout": "^4.2.2", "reveal.js": "^5.2.1", - "simple-masonry": "1.0.5", "whatwg-fetch": "^3.6.20" }, "devDependencies": { diff --git a/webpack.config.js b/webpack.config.js index f03be36c..fa5745a8 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -80,7 +80,7 @@ const webpackConfig = { loadPaths: [ "./node_modules/csh-material-bootstrap/dist", "./node_modules/csh-material-bootstrap/dist/css", - "./node_modules/datatables.net-bs/css", + "./node_modules/datatables.net-bs5/css", "./node_modules/bootstrap-material-datetimepicker/css", "./node_modules/load-awesome/css", "./node_modules/reveal.js/css", From 0ddf26c2bbe9d5997ea26eeb4207a445c6b40f87 Mon Sep 17 00:00:00 2001 From: "Noah Hanford (spaced)" Date: Sat, 28 Mar 2026 18:58:42 -0400 Subject: [PATCH 08/48] reordered dashboard --- conditional/templates/dashboard.html | 267 ++++++++++++++------------- conditional/util/flask.py | 2 +- conditional/util/user_dict.py | 1 - 3 files changed, 135 insertions(+), 135 deletions(-) diff --git a/conditional/templates/dashboard.html b/conditional/templates/dashboard.html index df5b6dbc..3cdd48ae 100644 --- a/conditional/templates/dashboard.html +++ b/conditional/templates/dashboard.html @@ -7,10 +7,10 @@
-
+
-
+

{{ get_member_name(username) }}

@@ -37,6 +37,22 @@
+ {% if accepting_dues and check_current_student(username) and not active and not bad_standing %} +
+
+
+

Become Active

+
+
+ Hey there, you're eligible to become an active member! Click the button below if you'd like to become active and pay dues. +
+ +
+
+ {% endif %} + {% if intro %}
@@ -125,6 +141,7 @@
Introduction Evaluations
{% endif %} + {% if spring['status'] != None %}
@@ -248,25 +265,82 @@
Conditionals
{% endif %} + {% if active %}
-
Member Statistics
+
+ Gatekeep + {% if gatekeep['status'] == "passing" %} + + Ok! + + {% elif gatekeep['status'] == "disenfranchised" and gatekeep_active%} + + Disenfranchised + + {% elif active %} + + Pending + + {% endif %} +
    -
  • -
    Category
    -
    Members
    + {% if not gatekeep_active %} +
  • +
    + Status +
    +
    + Gatekeep Inactive Until 6 Weeks +
  • - {% for title in voting_count %} + {% endif %}
  • -
    {{ title }}
    -
    {{ voting_count[title] }}
    +
    + Technical Seminars +
    +
    + {% if gatekeep['technical_seminars'] >= 2 %} + + {% else %} + + {% endif %} + {{ gatekeep['technical_seminars'] }} / 2 +
    +
  • +
  • +
    + Directorship Meetings +
    +
    + {% if gatekeep['committee_meetings'] >= 6 %} + + {% else %} + + {% endif %} + {{ gatekeep['committee_meetings'] }} / 6 +
    +
  • +
  • +
    + House Meetings Missed +
    +
    + {% if gatekeep['hm_missed'] == 0 %} + None + {% elif gatekeep['hm_missed'] <= 1 %} + {{ gatekeep['hm_missed'] }} + {% else %} + {{ gatekeep['hm_missed'] }} + {% endif %} +
  • - {% endfor %}
+ {% endif %} {% if major_projects_count == 0 %}
@@ -363,129 +437,6 @@
Description
{% endif %} - {% if accepting_dues and check_current_student(username) and not active and not bad_standing %} -
-
-
-

Become Active

-
-
- Hey there, you're eligible to become an active member! Click the button below if you'd like to become active and pay dues. -
- -
-
- {% endif %} - - {% if housing %} -
-
-
-
Housing Status
-
-
    -
  • -
    Housing Points
    -
    {{ housing['points'] }}
    -
  • - {% if housing['room'] != None %} -
  • -
    Room Number
    -
    {{ housing['room'] }}
    -
  • - {% endif %} - {% if housing['queue_pos'][0] != None and housing['room'] == None %} -
  • -
    Housing Queue Position
    -
    - {{ housing['queue_pos'][0] }} / {{ housing['queue_pos'][1] }} -
    -
  • - {% endif %} -
-
-
- {% endif %} - - {% if active %} -
-
-
-
- Gatekeep - {% if gatekeep['status'] == "passing" %} - - Ok! - - {% elif gatekeep['status'] == "disenfranchised" and gatekeep_active%} - - Disenfranchised - - {% elif active %} - - Pending - - {% endif %} -
-
-
    - {% if not gatekeep_active %} -
  • -
    - Status -
    -
    - Gatekeep Inactive Until 6 Weeks -
    -
  • - {% endif %} -
  • -
    - Technical Seminars -
    -
    - {% if gatekeep['technical_seminars'] >= 2 %} - - {% else %} - - {% endif %} - {{ gatekeep['technical_seminars'] }} / 2 -
    -
  • -
  • -
    - Directorship Meetings -
    -
    - {% if gatekeep['committee_meetings'] >= 6 %} - - {% else %} - - {% endif %} - {{ gatekeep['committee_meetings'] }} / 6 -
    -
  • -
  • -
    - House Meetings Missed -
    -
    - {% if gatekeep['hm_missed'] == 0 %} - None - {% elif gatekeep['hm_missed'] <= 1 %} - {{ gatekeep['hm_missed'] }} - {% else %} - {{ gatekeep['hm_missed'] }} - {% endif %} -
    -
  • -
-
-
- {% endif %} - {% if missed_hm_len == 0 and active %}
@@ -552,6 +503,56 @@
Directorship Meeting Attendance
{% endif %} + + {% if housing %} +
+
+
+
Housing Status
+
+
    +
  • +
    Housing Points
    +
    {{ housing['points'] }}
    +
  • + {% if housing['room'] != None %} +
  • +
    Room Number
    +
    {{ housing['room'] }}
    +
  • + {% endif %} + {% if housing['queue_pos'][0] != None and housing['room'] == None %} +
  • +
    Housing Queue Position
    +
    + {{ housing['queue_pos'][0] }} / {{ housing['queue_pos'][1] }} +
    +
  • + {% endif %} +
+
+
+ {% endif %} + +
+
+
+
Member Statistics
+
+
    +
  • +
    Category
    +
    Members
    +
  • + {% for title in voting_count %} +
  • +
    {{ title }}
    +
    {{ voting_count[title] }}
    +
  • + {% endfor %} +
+
+
{% endblock %} diff --git a/conditional/util/flask.py b/conditional/util/flask.py index 2a54f55c..dbb337d3 100644 --- a/conditional/util/flask.py +++ b/conditional/util/flask.py @@ -34,7 +34,7 @@ def render_template(template_name, user_dict=None, **kwargs): ts_review = len(TechnicalSeminar.query.filter( TechnicalSeminar.approved == False).all()) # pylint: disable=singleton-comparison - admin_warning = True + admin_warning = lockdown if is_eboard or is_rtp: lockdown = False diff --git a/conditional/util/user_dict.py b/conditional/util/user_dict.py index a219e4dc..bfc9ad3a 100644 --- a/conditional/util/user_dict.py +++ b/conditional/util/user_dict.py @@ -26,7 +26,6 @@ def user_dict_is_financial_director(user_dict) -> bool: return user_dict_is_in_group(user_dict, 'eboard-financial') def user_dict_is_eval_director(user_dict) -> bool: - return True return user_dict_is_in_group(user_dict, 'eboard-evaluations') def user_dict_is_current_student(user_dict) -> bool: From d164c3a9bd357bc200b143f083858564df0f36d6 Mon Sep 17 00:00:00 2001 From: "Noah Hanford (spaced)" Date: Sat, 28 Mar 2026 20:34:16 -0400 Subject: [PATCH 09/48] intro evals basic info --- conditional/templates/dashboard.html | 2 +- conditional/templates/intro_evals.html | 361 +++++++++++++++---------- frontend/stylesheets/pages/_evals.scss | 190 ++++++------- 3 files changed, 320 insertions(+), 233 deletions(-) diff --git a/conditional/templates/dashboard.html b/conditional/templates/dashboard.html index 3cdd48ae..ac671f6e 100644 --- a/conditional/templates/dashboard.html +++ b/conditional/templates/dashboard.html @@ -7,7 +7,7 @@
-
+
diff --git a/conditional/templates/intro_evals.html b/conditional/templates/intro_evals.html index 1d530ef5..80dfc65d 100644 --- a/conditional/templates/intro_evals.html +++ b/conditional/templates/intro_evals.html @@ -9,164 +9,251 @@

Intro Evaluations

-
+
Table View
+
- {% if members|length > 0 %} - {% for m in members %} -
-
+ {% if members|length > 0 %} + {% for m in members %} +
+
+
+ {{m['uid']}} + + {% if m['ldap_account'] %} + {% if m['status'] == "Passed" %} + + {% elif m['status'] == "Pending" %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + +
+
+

+ {{ m['name'] }} +

+
+ {% if not m['ldap_account'] %} + Internal Account: {{m['uid']}} + {% else %} + {{ m['uid'] }} + {% endif %} +
+
+ -
-
-

{{m['name']}}

- {% if not m['ldap_account'] %} - Internal Account: {{m['uid']}} + But then it was too spaced out so the inner one will center it with a set width which looks fine/good + + If this still makes zero sense you can try and simplify it and then see if it looks okay on all screen sizes + If it does, congrats! you simplified it but this was my best solution + - Noah + --> +
+
+
+ {% if m['signatures_missed'] == 0 %} + + Signatures Missed + {{ m['signatures_missed'] }} + {% elif m['signatures_missed'] > 0 %} + Signatures Missed + {{ m['signatures_missed'] }} {% else %} -
{{ m['uid'] }}
+ Packet In Progress + Pending {% endif %} +
-
- -
-
-
- {% if m['signatures_missed'] == 0 %} -
- Signatures Missed - {{ m['signatures_missed'] }} -
- {% elif m['signatures_missed'] > 0 %} -
- Signatures Missed - {{ m['signatures_missed'] }} -
- {% else %} -
- Packet In Progress - Pending -
- {% endif %} -
-
- {% if m['committee_meetings'] < 6 %} -
- Directorship Meetings - {{m['committee_meetings']}} / 6 -
- {% else %} -
- Directorship Meetings - {{m['committee_meetings']}} / 6 -
- {% endif %} - +
+ {% if m['committee_meetings'] >= 6 %} + + {% else %} + + {% endif %} + Directorship Meetings + {{ m['committee_meetings'] }} / 6
-
- {% if m['house_meetings_missed']|length > 0 %} -
- House Meetings Missed - {{m['house_meetings_missed']|length}} -
- {% else %} -
- House Meetings Missed - {{m['house_meetings_missed']|length}} -
- {% endif %} + +
+ {% if m['technical_seminars'] | length >= 2 %} + + {% else %} + + {% endif %} + Technical Seminars + {{ m['technical_seminars'] | length }} / 2
+
+ {% if m['house_meetings_missed'] | length >= 2 %} + + {% else %} + + {% endif %} + House Meetings Missed + {{ m['house_meetings_missed'] | length }} +
-
- {% if m['house_meetings_missed']|length != 0 or m['technical_seminars']|length != 0 or m['comments'] != "" %} -
- -
- {% endif %} -
- {% if m['house_meetings_missed']|length > 0 %} - -

Missed House Meetings

- - - - - - - - - - {% for hm_missed in m['house_meetings_missed'] %} - - - - - {% endfor %} - - -
DateDescription
{{hm_missed['date']}}{{hm_missed['reason']}}
- {% endif %} - - {% if m['technical_seminars']|length > 0 %} - -

Technical Seminars

- - - {% for seminar in m['technical_seminars'] %} - - - - {% endfor %} - -
{{seminar}}
- {% endif %} - {% if m['social_events'] != "" %} - -

Social Events

-

{{m['social_events']}}

- {% endif %} - - {% if m['comments'] != "" %} - -

Other Comments

-

{{m['comments']}}

- {% endif %}
-
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- -
-{% endfor %} + {% endfor %}
{% else %} diff --git a/frontend/stylesheets/pages/_evals.scss b/frontend/stylesheets/pages/_evals.scss index 99d6e010..4d8ee924 100644 --- a/frontend/stylesheets/pages/_evals.scss +++ b/frontend/stylesheets/pages/_evals.scss @@ -1,95 +1,95 @@ -.eval-info-label { - padding: .3em .6em .4em; - text-align: left; - line-height: 1; - color: #444; - font-weight: 500; -} - -.eval-info-status { - margin: 2px 0 0; - padding: 0 5px 0 0; -} - -.eval-info-number { - float: right; -} - -.eval-user-img { - border-radius: 50%; -} - -.eval-panel { - padding: 25px 20px; -} - -.eval-user-status { - display: block; - position: relative; - font-weight: 400; - float: right; - margin: -25px 5px; - border-radius: 50%; - padding: 6px; - width: 25px; - height: 25px; - - &:before { - vertical-align: .25em; - } -} - -.col-sm-2 { - padding-right: 0; - padding-left: 0; -} - -.eval-name { - margin-bottom: 5px; - padding-top: 12px; -} - -.eval-uid { - margin-top: 0; - color: #808080; -} - -.spring-info { - padding-top: 10px; -} - -.btn-expand-panel { - &, - &:hover, - &:focus, - &:active { - outline: 0; - border: 0; - background: transparent; - width: 100%; - text-align: center; - display: block; - } - - &[aria-expanded="true"] { - i.bi { - transform: rotate(180deg); - } - } - - i.bi { - transition: transform ease-in-out 0.2s; - transform: rotate(0deg); - } -} - -.btn-conditional { - float: right; - margin-top: -4px; - box-shadow: none; - padding: 3px 7px; -} - -.evals-dropdown { - text-align: center; -} +// .eval-info-label { +// padding: .3em .6em .4em; +// text-align: left; +// line-height: 1; +// color: #444; +// font-weight: 500; +// } +// +// .eval-info-status { +// margin: 2px 0 0; +// padding: 0 5px 0 0; +// } +// +// .eval-info-number { +// float: right; +// } +// +// .eval-user-img { +// border-radius: 50%; +// } +// +// .eval-panel { +// padding: 25px 20px; +// } +// +// .eval-user-status { +// display: block; +// position: relative; +// font-weight: 400; +// float: right; +// margin: -25px 5px; +// border-radius: 50%; +// padding: 6px; +// width: 25px; +// height: 25px; +// +// &:before { +// vertical-align: .25em; +// } +// } +// +// .col-sm-2 { +// padding-right: 0; +// padding-left: 0; +// } +// +// .eval-name { +// margin-bottom: 5px; +// padding-top: 12px; +// } +// +// .eval-uid { +// margin-top: 0; +// color: #808080; +// } +// +// .spring-info { +// padding-top: 10px; +// } +// +// .btn-expand-panel { +// &, +// &:hover, +// &:focus, +// &:active { +// outline: 0; +// border: 0; +// background: transparent; +// width: 100%; +// text-align: center; +// display: block; +// } +// +// &[aria-expanded="true"] { +// i.bi { +// transform: rotate(180deg); +// } +// } +// +// i.bi { +// transition: transform ease-in-out 0.2s; +// transform: rotate(0deg); +// } +// } +// +// .btn-conditional { +// float: right; +// margin-top: -4px; +// box-shadow: none; +// padding: 3px 7px; +// } +// +// .evals-dropdown { +// text-align: center; +// } From b3d85b80ebe4dc2f1946e07631394259b43cdcb7 Mon Sep 17 00:00:00 2001 From: "Noah Hanford (spaced)" Date: Sun, 29 Mar 2026 21:44:32 -0400 Subject: [PATCH 10/48] intro evals table stuff --- conditional/blueprints/intro_evals.py | 2 - conditional/templates/dashboard.html | 2 +- conditional/templates/intro_evals.html | 375 +++++++++------------ frontend/stylesheets/partials/_global.scss | 16 +- 4 files changed, 169 insertions(+), 226 deletions(-) diff --git a/conditional/blueprints/intro_evals.py b/conditional/blueprints/intro_evals.py index 262ae18b..f56fc3a7 100644 --- a/conditional/blueprints/intro_evals.py +++ b/conditional/blueprints/intro_evals.py @@ -121,8 +121,6 @@ def get_intro_members_without_accounts(): } ie_members.append(freshman) - print(ie_members) - return ie_members @intro_evals_bp.route('/intro_evals/') diff --git a/conditional/templates/dashboard.html b/conditional/templates/dashboard.html index ac671f6e..5dc15d5c 100644 --- a/conditional/templates/dashboard.html +++ b/conditional/templates/dashboard.html @@ -10,7 +10,7 @@
-
+

{{ get_member_name(username) }}

diff --git a/conditional/templates/intro_evals.html b/conditional/templates/intro_evals.html index 80dfc65d..6de79435 100644 --- a/conditional/templates/intro_evals.html +++ b/conditional/templates/intro_evals.html @@ -3,24 +3,33 @@ Introductory Evaluations {% endblock %} {% block body %} -
+

Intro Evaluations

-
-
-
Table View
- - -
+
+ + + + + + + +
-
+
{% if members|length > 0 %} {% for m in members %} -
+
{{m['uid']}} @@ -101,7 +110,7 @@
- {% if m['house_meetings_missed'] | length >= 2 %} + {% if m['house_meetings_missed'] | length == 0 %} {% else %} @@ -113,219 +122,165 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + {% if m['house_meetings_missed'] | length != 0 or m['technical_seminars'] | length != 0 or m['comments'] != "" %} + + {% endif %} +
+ {% endfor %}
- {% endfor %} -
-{% else %} - -{% endif %} -