From d0233d0f094e5e1c290644d340f3d19bcabbfbe7 Mon Sep 17 00:00:00 2001 From: Allie Bopp <aebopp@umich.edu> Date: Tue, 14 Jul 2020 17:26:00 -0400 Subject: [PATCH] when someone joins an org late, their pending points requests are sent to the new student org leader --- .../views/__pycache__/accounts.cpython-36.pyc | Bin 13536 -> 13968 bytes servicePoints/views/accounts.py | 51 +++++++++++------- var/servicePoints.sqlite3 | Bin 32768 -> 32768 bytes 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/servicePoints/views/__pycache__/accounts.cpython-36.pyc b/servicePoints/views/__pycache__/accounts.cpython-36.pyc index 395b717c44002cd785339b56c3476f82f7ed0503..9f728b0a7d16dbe1209a926485c7d9974f50d743 100644 GIT binary patch delta 3384 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 DNGu0k delta 2908 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 diff --git a/servicePoints/views/accounts.py b/servicePoints/views/accounts.py index 25843ff..15a067e 100644 --- a/servicePoints/views/accounts.py +++ b/servicePoints/views/accounts.py @@ -63,7 +63,7 @@ def create(): to_add = (name,) to_join = (orgName,) cursor.execute('SELECT * FROM users WHERE username=?', to_add) - if cursor.fetchone() is not None: + if cursor.fetchone() is not None or name == "pending": return flask.redirect(flask.url_for('duplicateUsername', prev='create')) cursor.execute('SELECT * FROM orgs WHERE orgName=?', to_join) @@ -121,6 +121,8 @@ def createOrg(): to_add = (name,) to_addOrg = (orgName,) if orgName == "NONE": + return flask.redirect(flask.url_for('duplicateOrgName', prev='createOrg')) + if name == "pending": return flask.redirect(flask.url_for('duplicateUsername', prev='createOrg')) cursor.execute('SELECT * FROM users WHERE username=?', to_add) if cursor.fetchone() is not None: @@ -341,10 +343,17 @@ def profile(): if flask.request.method == 'POST': orgName = str(flask.request.form['orgName']) - + username = str(flask.session['username']) cur = servicePoints.model.get_db() cur.execute('UPDATE users SET orgName = ? WHERE username = ?', - (orgName, flask.session['username'])) + (orgName, username,)) + cur.execute('DELETE from orgs WHERE username = ?', + (username,)) + leadercur = cur.execute('SELECT username from orgs WHERE orgName = ?', + (orgName,)) + leader = leadercur.fetchone() + cur.execute('UPDATE requests SET leader = ? WHERE member = ?', + (leader["username"], username,)) return flask.redirect(flask.url_for('index')) cursor = servicePoints.model.get_db() @@ -428,11 +437,14 @@ def submitPoints(): {"who": username}) results = studentOrgCur.fetchone() orgName = results["orgName"] - studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE ' - 'orgName =:who', - {"who": orgName}) - results = studentOrgLeader.fetchone() - leader = results["username"] + if orgName == "NONE": + leader = "pending" + else: + studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE ' + 'orgName =:who', + {"who": orgName}) + results = studentOrgLeader.fetchone() + leader = results["username"] cursor.execute('INSERT INTO requests(member, leader, service, filename) VALUES ' '(:one,:two,:three,:four)', {"one": username, "two": leader, "three": serviceType, "four": hash_filename_basename}) return flask.redirect(flask.url_for('confirmSubmission')) @@ -456,16 +468,19 @@ def confirmSubmission(): {"who": username}) results = studentOrgCur.fetchone() orgName = results["orgName"] - studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE ' - 'orgName =:who', - {"who": orgName}) - results = studentOrgLeader.fetchone() - leader = results["username"] - studentOrgLeaderFull = cursor.execute('SELECT fullname FROM users WHERE ' - 'username =:who', - {"who": leader}) - results = studentOrgLeaderFull.fetchone() - context = {"leader": results["fullname"]} + if orgName == "NONE": + context = {"leader": "[when you join a student org, your request will be sent to the student org leader]"} + else: + studentOrgLeader = cursor.execute('SELECT username FROM orgs WHERE ' + 'orgName =:who', + {"who": orgName}) + results = studentOrgLeader.fetchone() + leader = results["username"] + studentOrgLeaderFull = cursor.execute('SELECT fullname FROM users WHERE ' + 'username =:who', + {"who": leader}) + results = studentOrgLeaderFull.fetchone() + context = {"leader": results["fullname"]} return render_template('confirmSubmission.html', **context) diff --git a/var/servicePoints.sqlite3 b/var/servicePoints.sqlite3 index 9599fb8a735dd76dc6574171b10ce6a4cf28966f..2464e2f347f64a8f0b2bbd3fcfb11d062973c0a2 100644 GIT binary patch delta 829 zcmZuvJ8RTI5WmZX<e!IG;|X#kMNSS|cW2)qM6?l7q_MCGxR04=<0D3bAlzL(fgztD zWx(b*?NV3@A*}{MEK*C*MoTvua*fNdO!1qY-(!2dv0iWN%|d-)XYp=*VeoK|U7LPg ztE$r)^K+Y*_GZ7#HfL^Cr&EJL|8v#tFHcs@X0x@uHuVIzF6!yV`in<F3+TASjo{Hr z<3UBtK{=BGNQ){eW3dxS3nNVqToN}bSwr4%&p{@gQ5XzFRvAyId9cB8Op-tvu9D2% z@&+f9m9v~=%p@X`(2-lg6DcyrP;%U%<HkFOf?FR8T0@3{PdcjDzgJbQa<<p1!oM&d z-FV)gYe_k}WTI11M5P6K-_2!Ra-NG!I*Cq@8n}}RQ93K4$kyn;`b8oNoMILbqys=t z8GM;SM><=y#T??=k<3vlLI~DTBv9a#*M=w+D>U*H6_}(l6%SpsS6${@aOB+k;z6{v zTJ6J5|DfByKT);Y?K4r&w{T<g)yv0EpZ%{ZVplK1($WR+89_#&NPx34dn*GJLIR@f zc%cch##oG0pgG16N)S*`U=vBFF?#}dfRweh7!($=C^2O(lo3!w*i25wB1cJWI4>y} z?Q~GW#w5!pD2b<3Qq~ADDuo<_Fd!9#nBuUx_@i;9V*54riTz^l*gpHl4%xx*^3pE5 zKHX^5|D{(=HkxPc<Xod&AL*XhJ-q2>$Js%R{bXO+Q5l@)Z`nK>Z?syY+&9*DkCtu0 o9oN`zcEY~1<Kg`6k8EbNV0?J8dSj`v!d8aur8}(tey2b91DLw@=l}o! delta 124 zcmV-?0E7R4fC7Mk0+1U450M;00S~cYp$`!N000FH695l64s;En4B8A6vmqb>46_p) z@dFM856b`#)(`g&-w(?V?z0g<xet@eFF6VW56u7%@(<k)&9f0ezYmkmKQ{^k590t2 e_z&X`?XwY3)ep1dPbMG%qq7k(oDTtAk%3vT@+Y<c -- GitLab