Skip to content

Commit 04146aa

Browse files
authored
Merge pull request #15 from devinmatte/master
Prompting for Signature, and making call
2 parents 8c4d510 + bbe42b8 commit 04146aa

File tree

9 files changed

+68
-23
lines changed

9 files changed

+68
-23
lines changed

packet/packet.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22
from .models import Freshman, UpperSignature, FreshSignature, MiscSignature, db
33

44

5-
def sign(member_username, freshman_username):
5+
def sign(signer_username, freshman_username):
66
freshman = Freshman.query.filter_by(rit_username=freshman_username).first()
77
if freshman is None:
88
return False
9-
109
packet = freshman.current_packet()
1110
if packet is None:
1211
return False
1312
if not packet.is_open():
1413
return False
1514

16-
upper_signature = UpperSignature.query.filter_by(member=member_username).first()
17-
fresh_signature = FreshSignature.query.filter_by(freshman_username=member_username).first()
15+
upper_signature = UpperSignature.query.filter(UpperSignature.member == signer_username).first()
16+
fresh_signature = FreshSignature.query.filter(FreshSignature.freshman_username == signer_username).first()
17+
1818
if upper_signature:
1919
upper_signature.signed = True
2020
elif fresh_signature:
2121
fresh_signature.signed = True
2222
else:
23-
db.session.add(MiscSignature(packet.id, member_username, datetime.now(), packet))
23+
db.session.add(MiscSignature(packet.id, signer_username, datetime.now(), packet))
2424
db.session.commit()
2525

2626
return True
@@ -37,8 +37,8 @@ def get_signatures(freshman_username):
3737

3838

3939
def get_number_signed(freshman_username):
40-
return Freshman.query.filter_by(rit_username=freshman_username)[0].current_packet().signatures_received()
40+
return Freshman.query.filter_by(rit_username=freshman_username).first().current_packet().signatures_received()
4141

4242

4343
def get_number_required(freshman_username):
44-
return Freshman.query.filter_by(rit_username=freshman_username)[0].current_packet().signatures_required()
44+
return Freshman.query.filter_by(rit_username=freshman_username).first().current_packet().signatures_required()

packet/routes/api.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
from packet import auth, app
22
from packet.utils import before_request
3-
from packet.packet import sign
3+
from packet.packet import sign as sign_packet
44

55

6-
@app.route("/api/v1/<member_username>/sign/<packet_username>")
6+
@app.route("/api/v1/<member_username>/sign/<packet_username>", methods=["POST"])
77
@auth.oidc_auth
88
@before_request
99
def sign(member_username, packet_username, info):
10-
if info.uid != member_username:
11-
if info.member_info:
12-
if "eboard-evaluations" not in info.member_info.group_list:
10+
if info['uid'] != member_username:
11+
if info['member_info']:
12+
if "eboard-evaluations" not in info['member_info']['group_list']:
1313
return "Error: You are not evals"
1414
else:
1515
return "Error: UID Submission Mismatch"
16-
if not sign(member_username, packet_username):
16+
if not sign_packet(member_username, packet_username):
1717
return "Error: Signature not valid. Reason: Unknown"
1818
return "Success: Signed Packet: " + packet_username

packet/routes/shared.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
def freshman_packet(uid, info=None):
1313
freshman = Freshman.query.filter_by(rit_username=uid)[0]
1414
signatures = get_signatures(uid)
15-
required = get_number_required(uid)
16-
signed = get_number_signed(uid)
15+
required = sum(get_number_required(uid).values())
16+
signed = sum(get_number_signed(uid).values())
1717
return render_template("packet.html", info=info, signatures=signatures, uid=uid, required=required, signed=signed,
1818
freshman=freshman)
1919

packet/static/js/signing.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
$(document).ready(function () {
2+
3+
$('.sign-button').click(function () {
4+
var packetData = $(this).get(0).dataset;
5+
var userData = $("#userInfo").val();
6+
console.log(userData);
7+
swal({
8+
title: "Are you sure?",
9+
text: "Once a packet is signed it can only be unsigned from request to the Evals Director",
10+
icon: "warning",
11+
buttons: true,
12+
dangerMode: true,
13+
})
14+
.then((willSign) => {
15+
if (willSign) {
16+
$.ajax({
17+
url: "/api/v1/" + userData + "/sign/" + packetData.freshman_uid,
18+
method: "POST",
19+
success: function (data) {
20+
swal("Congratulations or I'm Sorry\nYou've signed " + packetData.freshman_name + "'s packet", {
21+
icon: "success",
22+
});
23+
}
24+
});
25+
}
26+
});
27+
});
28+
29+
});

packet/templates/active_packets.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ <h3 class="page-title">Active Packets</h3>
3131
{{ packet.freshman.name }}
3232
</td>
3333
<td>
34-
<span class="glyphicon glyphicon-ok-sign green eval-info-status"></span>
3534
{{ packet.signatures_received() }}
3635
</td>
3736
<td class="sign-packet" align="right">
3837
{# if not signed #}
39-
<button class="btn btn-primary">Sign</button>
38+
<button class="btn btn-primary sign-button"
39+
data-freshman_uid="{{ packet.freshman.rit_username }}"
40+
data-freshman_name="{{ packet.freshman.name }}">Sign
41+
</button>
4042
{# else if signed #}
4143
<button class="btn btn-primary" disabled="disabled"><i
4244
class="fa fa-check"></i>&nbsp;Signed
@@ -55,7 +57,6 @@ <h3 class="page-title">Active Packets</h3>
5557
</div>
5658
{% else %}
5759
<div class="alert alert-info" role="alert">
58-
<span class="glyphicon glyphicon-info-sign white" style="padding-right:5px"></span>
5960
There are currently no active packets.
6061
</div>
6162
{% endif %}

packet/templates/include/head.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet"/>
2424

25+
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
26+
2527
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
2628

2729
<link rel="stylesheet" href="/static/css/packet.css">

packet/templates/include/nav.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
</a>
2626

2727
<div class="dropdown-menu" aria-labelledby="user01">
28+
<input id="userInfo" hidden value="{{ info.uid }}">
2829
{% if info.realm == "csh" %}
2930
<a class="dropdown-item" href="/">Profile</a>
3031
<a class="dropdown-item" href="https://themeswitcher.csh.rit.edu/">Theme</a>

packet/templates/include/scripts.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
1111

12+
<script src="/static/js/signing.js"></script>
13+
1214
<script type="text/javascript">
1315
$(document).ready(function(){
1416
$('[data-toggle="tooltip"]').tooltip()

packet/templates/packet.html

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ <h3 class="page-title">{{ freshman.name }}</h3>
99
</div>
1010
<div>
1111
Signatures: {{ signed }}/{{ required }}
12+
{# if not signed #}
13+
<button class="btn btn-primary sign-button"
14+
data-freshman_uid="{{ freshman.rit_username }}"
15+
data-freshman_name="{{ freshman.name }}">Sign
16+
</button>
17+
{# else if signed #}
18+
<button class="btn btn-primary" disabled="disabled"><i
19+
class="fa fa-check"></i>&nbsp;Signed
20+
</button>
21+
{# endif #}
1222
</div>
1323
<div id="eval-blocks">
1424
<div id="eval-table">
@@ -103,11 +113,11 @@ <h3 class="page-title">{{ freshman.name }}</h3>
103113
{% for m in signatures.freshmen %}
104114
<tr>
105115
<td>
106-
<a href="/packet/{{ m.freshman }}">
107-
<img class="eval-user-img" alt="{{ m.freshman }}"
108-
src="https://profiles.csh.rit.edu/image/{{ m.freshman }}"
116+
<a href="/packet/{{ m.freshman.rit_username }}">
117+
<img class="eval-user-img" alt="{{ m.freshman.rit_username }}"
118+
src="https://profiles.csh.rit.edu/image/{{ m.freshman.rit_username }}"
109119
width="30"
110-
height="30"/> {{ get_freshman_name(m.freshman) }}
120+
height="30"/> {{ get_freshman_name(m.freshman.rit_username) }}
111121
</a>
112122
</td>
113123
<td>
@@ -165,4 +175,4 @@ <h3 class="page-title">{{ freshman.name }}</h3>
165175
</div>
166176
</div>
167177
</div>
168-
{% endblock %}
178+
{% endblock %}

0 commit comments

Comments
 (0)