Skip to content

Commit 90e7702

Browse files
Merge pull request #96 from ComputerScienceHouse/develop
Conditional 1.2.1
2 parents 7e87b67 + 8fc1ed9 commit 90e7702

File tree

10 files changed

+79
-35
lines changed

10 files changed

+79
-35
lines changed

conditional/blueprints/cache_management.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import os
2+
import signal
13
import structlog
24

35
from conditional.util.ldap import ldap_is_eval_director
6+
from conditional.util.ldap import ldap_is_rtp
47
from conditional.util.ldap import ldap_get_housing_points
58
from conditional.util.ldap import ldap_get_active_members
69
from conditional.util.ldap import ldap_get_intro_members
@@ -14,12 +17,23 @@
1417
logger = structlog.get_logger()
1518
cache_bp = Blueprint('cache_bp', __name__)
1619

20+
@cache_bp.route('/restart')
21+
def restart_app():
22+
user_name = request.headers.get('x-webauth-user')
23+
24+
if not ldap_is_rtp(user_name):
25+
return redirect("/dashboard")
26+
27+
logger.info('api', action='restart conditional')
28+
os.kill(os.getpid(), signal.SIGINT)
29+
return "application restarted", 200
30+
1731

1832
@cache_bp.route('/clearcache')
1933
def clear_cache():
2034
user_name = request.headers.get('x-webauth-user')
2135

22-
if not ldap_is_eval_director(user_name):
36+
if not ldap_is_eval_director(user_name) or ldap_is_rtp(user_name):
2337
return redirect("/dashboard")
2438

2539
logger.info('api', action='purge system cache')

conditional/blueprints/intro_evals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def get_fid_cm_count(member_id):
107107

108108
if freshman_data is None:
109109
continue
110-
elif freshman_data.freshman_eval_result != "Pending":
110+
elif freshman_data.freshman_eval_result != "Pending" and internal is True:
111111
continue
112112

113113
h_meetings = [m.meeting_id for m in

conditional/templates/intro_eval_slideshow.html

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,40 @@
1313
<section id="slide-{{m['uid']}}">
1414
<section>
1515
<h1>{{m['name']}}</h1>
16-
<div class="row">
17-
<div class="col-xs-12 col-md-4">
18-
{% set committee_meetings_passed = m['committee_meetings'] >= 10 %}
19-
<div class="item{% if committee_meetings_passed %} passed{% endif %}" >
20-
<span class="icon glyphicon glyphicon-{% if committee_meetings_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
21-
<h3>{{m['committee_meetings']}}</h3>
22-
<p>Meetings</p>
16+
<div class="row">
17+
<div class="col-xs-12 col-md-3">
18+
{% set packet_passed = m['signatures_missed'] == 0 %}
19+
<div class="item{% if packet_passed %} passed{% endif %}" >
20+
<span class="icon glyphicon glyphicon-{% if packet_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
21+
<h3>{{m['signatures_missed']}}</h3>
22+
<p>Signatures Missed</p>
23+
</div>
2324
</div>
24-
</div>
25-
<div class="col-xs-12 col-md-4">
26-
{% set house_meetings_passed = m['house_meetings_missed']|length == 0 %}
27-
<div class="item{% if house_meetings_passed %} passed{% endif %}">
28-
<span class="icon glyphicon glyphicon-{% if house_meetings_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
29-
<h3>{{m['house_meetings_missed']|length}}</h3>
30-
<p>Absences</p>
25+
<div class="col-xs-12 col-md-3">
26+
{% set committee_meetings_passed = m['committee_meetings'] >= 10 %}
27+
<div class="item{% if committee_meetings_passed %} passed{% endif %}" >
28+
<span class="icon glyphicon glyphicon-{% if committee_meetings_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
29+
<h3>{{m['committee_meetings']}}</h3>
30+
<p>Meetings</p>
31+
</div>
3132
</div>
32-
</div>
33-
<div class="col-xs-12 col-md-4">
34-
{% set technical_seminars_passed = m['technical_seminars']|length >= 2 %}
35-
<div class="item{% if technical_seminars_passed %} passed{% endif %}">
36-
<span class="icon glyphicon glyphicon-{% if technical_seminars_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
37-
<h3>{{m['technical_seminars']|length}}</h3>
38-
<p>Seminars</p>
33+
<div class="col-xs-12 col-md-3">
34+
{% set house_meetings_passed = m['house_meetings_missed']|length == 0 %}
35+
<div class="item{% if house_meetings_passed %} passed{% endif %}">
36+
<span class="icon glyphicon glyphicon-{% if house_meetings_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
37+
<h3>{{m['house_meetings_missed']|length}}</h3>
38+
<p>Absences</p>
39+
</div>
40+
</div>
41+
<div class="col-xs-12 col-md-3">
42+
{% set technical_seminars_passed = m['technical_seminars']|length >= 2 %}
43+
<div class="item{% if technical_seminars_passed %} passed{% endif %}">
44+
<span class="icon glyphicon glyphicon-{% if technical_seminars_passed %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span>
45+
<h3>{{m['technical_seminars']|length}}</h3>
46+
<p>Seminars</p>
47+
</div>
3948
</div>
4049
</div>
41-
</div>
4250
<h4><span class="icon glyphicon glyphicon-{% if m['freshman_project'] == 'Passed' %}ok passed{%else%}remove{% endif %}" aria-hidden="true"></span> Freshman Project</h4>
4351

4452
<div class="actions" data-uid="{{m['uid']}}" data-cn="{{m['name']}}">

conditional/templates/nav.html

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,27 @@
4444
</ul>
4545
</li>
4646
{% endif %}
47-
{% if is_eval_director or is_financial_director %}
47+
{% if is_eval_director or is_financial_director or is_rtp%}
4848
<li class="dropdown">
4949
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-wrench"></span> Admin<span class="caret"></span></a>
5050
<ul class="dropdown-menu">
51-
<li><a href="/manage"><span class="glyphicon glyphicon-user"></span> Member Management</a></li>
51+
52+
{% if is_financial_director or is_eval_director %}
53+
<li><a href="/manage"><span class="glyphicon glyphicon-user"></span> Member Management</a></li>
54+
{% endif %}
55+
5256
{% if is_eval_director %}
57+
<li><a href="/manage/intro_project"><span class="glyphicon glyphicon-tower"></span> Introductory Project Results</a></li>
58+
<li><a href="/slideshow/intro"><span class="glyphicon glyphicon-eye-open"></span> Introductory Evaluations Presentation</a></li>
59+
<li><a href="/slideshow/spring"><span class="glyphicon glyphicon-eye-open"></span> Membership Evaluations Presentation</a></li>
60+
{% endif %}
5361

54-
<li><a href="/manage/intro_project"><span class="glyphicon glyphicon-tower"></span> Introductory Project Results</a></li>
55-
<li><a href="/slideshow/intro"><span class="glyphicon glyphicon-eye-open"></span> Introductory Evaluations Presentation</a></li>
56-
<li><a href="/slideshow/spring"><span class="glyphicon glyphicon-eye-open"></span> Membership Evaluations Presentation</a></li>
62+
{% if is_eval_director or is_rtp %}
63+
<li><a href="/clearcache"><span class="glyphicon glyphicon-floppy-remove"></span> Clear Cache</a></li>
64+
{% endif %}
5765

66+
{% if is_rtp %}
67+
<li><a href="/restart"><span class="glyphicon glyphicon-refresh"></span> Restart Conditional</a></li>
5868
{% endif %}
5969
</ul>
6070
</li>

conditional/util/flask.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from conditional.util.ldap import ldap_is_financial_director
88
from conditional.util.ldap import ldap_is_eval_director
99
from conditional.util.ldap import ldap_is_intromember
10+
from conditional.util.ldap import ldap_is_rtp
1011
from conditional import db
1112

1213

@@ -27,6 +28,7 @@ def render_template(request, template_name, **kwargs):
2728
is_financial = ldap_is_financial_director(user_name)
2829
is_eval = ldap_is_eval_director(user_name)
2930
is_intromember = ldap_is_intromember(user_name)
31+
is_rtp = ldap_is_rtp(user_name)
3032

3133
if is_eval:
3234
lockdown = False
@@ -40,4 +42,5 @@ def render_template(request, template_name, **kwargs):
4042
is_eval_director=is_eval,
4143
is_financial_director=is_financial,
4244
is_intromember=is_intromember,
45+
is_rtp=is_rtp,
4346
**kwargs)

conditional/util/ldap.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,10 @@ def ldap_is_eboard(username):
201201
return _ldap_is_member_of_group(username, 'eboard')
202202

203203

204+
def ldap_is_rtp(username):
205+
return _ldap_is_member_of_group(username, 'rtp')
206+
207+
204208
def ldap_is_intromember(username):
205209
return _ldap_is_member_of_group(username, 'intromembers')
206210

frontend/javascript/modules/conditionalForm.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ export default class ConditionalForm {
1515

1616
_submitForm(e) {
1717
e.preventDefault();
18+
let uid = this.form.uid.value;
1819
let payload = {
19-
uid: this.form.uid.value,
20+
uid: uid,
2021
description: this.form.querySelector('input[name=description]').value,
2122
dueDate: this.form.querySelector('input[name=due_date]').value
2223
};
@@ -26,6 +27,12 @@ export default class ConditionalForm {
2627
}, () => {
2728
$(this.form.closest('.modal')).modal('hide');
2829
if (location.pathname.split('/')[1] === "slideshow") {
30+
$('#createConditional').on('hidden.bs.modal', function() {
31+
var condBtn = $('div[data-uid="' + uid + '"] button')
32+
.first();
33+
$(condBtn).text("Conditionaled").off("click").addClass("disabled");
34+
$(condBtn).next().hide();
35+
});
2936
reveal.right();
3037
} else {
3138
location.reload();

frontend/javascript/modules/presentation.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ export default class Presentation {
4242
$('#createConditional').modal();
4343
$('#createConditional input[type="text"]').val('');
4444
$('#createConditional input[name="uid"]').val(uid);
45-
$('#createConditional').on('hidden.bs.modal', function() {
46-
$(e.target).text("Conditionaled").off("click").addClass("disabled");
47-
$(e.target).next().hide();
48-
});
4945
});
5046
$(e.target).click(e => {
5147
e.preventDefault();

frontend/stylesheets/components/_reveal.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,11 @@ $yellow: #f1c40f;
105105
}
106106
& .item {
107107
position: relative;
108+
margin: 0 auto;
108109
border: 6px solid $red;
109110
border-radius: 20px;
110111
padding: 60px 0 0;
111-
width: 95%;
112+
width: 92%;
112113
height: 100%;
113114
color: #555;
114115
&.passed {

frontend/stylesheets/components/reveal/_white.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ body {
7272
}
7373

7474
.reveal .item p {
75+
font-size: .6em;
7576
font-weight: normal;
7677
}
7778

0 commit comments

Comments
 (0)