Skip to content
This repository was archived by the owner on Feb 3, 2024. It is now read-only.

Commit cecf879

Browse files
author
Nicholas V Mercadante
authored
Flag Template Deleted + Query String Fix (#50)
* Deleted the flag template and all files/code associated with it, as well as implemented a fix to the query string 500 errors * Fixed lack of 'show more' button when using a query string * Fixed the load_more js file to properly append the query strings to the additional route call * Fixed syntax error in load_more function
1 parent 4bde5dc commit cecf879

File tree

10 files changed

+62
-309
lines changed

10 files changed

+62
-309
lines changed

quotefault/__init__.py

Lines changed: 44 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
app.config.from_pyfile(os.path.join(os.getcwd(), "config.py"))
1717
else:
1818
app.config.from_pyfile(os.path.join(os.getcwd(), "config.env.py"))
19+
#var representing the quote database the app is connected to
1920
db = SQLAlchemy(app)
2021

2122
# Disable SSL certificate verification warning
@@ -92,20 +93,14 @@ def main():
9293
db.create_all()
9394
metadata = get_metadata()
9495
all_members = get_all_members()
95-
if request.cookies.get('flag'):
96-
return render_template('flag/main.html', metadata=metadata)
97-
else:
98-
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members)
96+
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members)
9997

10098

10199
@app.route('/settings', methods=['GET'])
102100
@auth.oidc_auth
103101
def settings():
104102
metadata = get_metadata()
105-
if request.cookies.get('flag'):
106-
return render_template('flag/settings.html', metadata=metadata)
107-
else:
108-
return render_template('bootstrap/settings.html', metadata=metadata)
103+
return render_template('bootstrap/settings.html', metadata=metadata)
109104

110105

111106
@app.route('/vote', methods=['POST'])
@@ -136,18 +131,12 @@ def make_vote():
136131
@auth.oidc_auth
137132
def update_settings():
138133
metadata = get_metadata()
139-
if request.form['template'] == "flag":
140-
resp = make_response(render_template('flag/settings.html', metadata=metadata))
141-
resp.set_cookie('flag', 'True')
142-
return resp
134+
resp = make_response(render_template('bootstrap/settings.html', metadata=metadata))
135+
if request.form['plug'] == "off":
136+
resp.set_cookie('plug', 'False')
143137
else:
144-
resp = make_response(render_template('bootstrap/settings.html', metadata=metadata))
145-
resp.set_cookie('flag', 'False', expires=0)
146-
if request.form['plug'] == "off":
147-
resp.set_cookie('plug', 'False')
148-
else:
149-
resp.set_cookie('plug', 'True', expires=0)
150-
return resp
138+
resp.set_cookie('plug', 'True', expires=0)
139+
return resp
151140

152141

153142
# run when the form submission button is clicked
@@ -170,13 +159,9 @@ def submit():
170159
# checks for empty quote or submitter
171160
if quote == '' or speaker == '':
172161
flash('Empty quote or speaker field, try again!', 'error')
173-
if request.cookies.get('flag'):
174-
return render_template('flag/main.html', metadata=metadata), 200
175162
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members), 200
176163
elif submitter == speaker:
177164
flash('You can\'t quote yourself! Come on', 'error')
178-
if request.cookies.get('flag'):
179-
return render_template('flag/main.html', metadata=metadata), 200
180165
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members), 200
181166
elif quoteCheck is None: # no duplicate quotes, proceed with submission
182167
# create a row for the Quote table
@@ -191,81 +176,67 @@ def submit():
191176
# create a message to flash for successful submission
192177
flash('Submission Successful!')
193178
# return something to complete submission
194-
if request.cookies.get('flag'):
195-
return render_template('flag/main.html', metadata=metadata), 200
196179
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members), 200
197180
else: # duplicate quote found, bounce the user back to square one
198181
flash('Quote already submitted!', 'warning')
199-
if request.cookies.get('flag'):
200-
return render_template('flag/main.html', metadata=metadata), 200
201182
return render_template('bootstrap/main.html', metadata=metadata, all_members=all_members), 200
202183

203184

204-
# display stored quotes
185+
# display first 20 stored quotes
205186
@app.route('/storage', methods=['GET'])
206187
@auth.oidc_auth
207188
def get():
208189
metadata = get_metadata()
209190
metadata['submitter'] = request.args.get('submitter') # get submitter from url query string
210191
metadata['speaker'] = request.args.get('speaker') # get speaker from url query string
211192

193+
#return the first 20 quotes according to query strings (or lack thereof), as well as their associated vote value
212194
if metadata['speaker'] is not None and metadata['submitter'] is not None:
213-
quotes = Quote.query.order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter'],
214-
Quote.speaker == metadata['speaker']).all()
195+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter'], Quote.speaker == metadata['speaker']).limit(20).all()
215196
elif metadata['submitter'] is not None:
216-
quotes = Quote.query.order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter']).all()
197+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter']).limit(20).all()
217198
elif metadata['speaker'] is not None:
218-
quotes = Quote.query.order_by(Quote.quote_time.desc()).filter(Quote.speaker == metadata['speaker']).all()
219-
else:
220-
# collect all quote rows in the Quote db
221-
# quotes = Quote.query.order_by(Quote.quote_time.desc()).limit(20).all()
222-
223-
# returns tuples with a quote and its net vote value
224-
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(
225-
Quote.quote_time.desc()).limit(20).all()
226-
227-
user_votes = db.session.query(Vote).filter(Vote.voter == metadata['submitter']).all()
228-
229-
if request.cookies.get('flag'):
230-
return render_template(
231-
'flag/storage.html',
232-
quotes=quotes,
233-
metadata=metadata,
234-
user_votes=user_votes
235-
)
199+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.speaker == metadata['speaker']).limit(20).all()
236200
else:
237-
return render_template(
238-
'bootstrap/storage.html',
239-
quotes=quotes,
240-
metadata=metadata,
241-
user_votes=user_votes
242-
)
201+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).limit(20).all()
202+
203+
#tie any votes the user has made to their uid
204+
user_votes = db.session.query(Vote).filter(Vote.voter == metadata['submitter']).all()
243205

206+
return render_template(
207+
'bootstrap/storage.html',
208+
quotes=quotes,
209+
metadata=metadata,
210+
user_votes=user_votes
211+
)
244212

245-
# display stored quotes
213+
214+
# display ALL stored quotes
246215
@app.route('/additional', methods=['GET'])
247216
@auth.oidc_auth
248217
def additional_quotes():
249218

250219
metadata = get_metadata()
220+
metadata['submitter'] = request.args.get('submitter') # get submitter from url query string
221+
metadata['speaker'] = request.args.get('speaker') # get speaker from url query string
251222

252-
# returns tuples with a quote and its net vote value
253-
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(
254-
Quote.quote_time.desc()).all()
223+
#return quotes according to query strings (or lack thereof)
224+
if metadata['speaker'] is not None and metadata['submitter'] is not None:
225+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter'], Quote.speaker == metadata['speaker']).all()
226+
elif metadata['submitter'] is not None:
227+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.submitter == metadata['submitter']).all()
228+
elif metadata['speaker'] is not None:
229+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).filter(Quote.speaker == metadata['speaker']).all()
230+
else:
231+
quotes = db.session.query(Quote, func.sum(Vote.direction).label('votes')).outerjoin(Vote).group_by(Quote).order_by(Quote.quote_time.desc()).all()
255232

233+
#tie any votes the user has made to their uid
256234
user_votes = db.session.query(Vote).filter(Vote.voter == metadata['uid']).all()
257235

258-
if request.cookies.get('flag'):
259-
return render_template(
260-
'flag/additional_quotes.html',
261-
quotes=quotes[20:],
262-
metadata=metadata,
263-
user_votes=user_votes
264-
)
265-
else:
266-
return render_template(
267-
'bootstrap/additional_quotes.html',
268-
quotes=quotes[20:],
269-
metadata=metadata,
270-
user_votes=user_votes
271-
)
236+
237+
return render_template(
238+
'bootstrap/additional_quotes.html',
239+
quotes=quotes[20:],
240+
metadata=metadata,
241+
user_votes=user_votes
242+
)

quotefault/static/css/quotefaultcss.css

Lines changed: 0 additions & 40 deletions
This file was deleted.
-8.98 KB
Binary file not shown.

quotefault/static/js/load_more.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,19 @@ function buttonAjax(buttonElem, options, failOnly) {
3636

3737
$(function () {
3838
$("#get_more").one("click", function (e) {
39+
//Prepare the url with the proper query strings
40+
let urlParams = new URLSearchParams(window.location.search);
41+
let speaker = urlParams.get('speaker');
42+
let submitter = urlParams.get('submitter');
43+
let urlStr = `/additional`;
44+
if(speaker){
45+
urlStr+=`?speaker=${speaker}`;
46+
}
47+
if(submitter){
48+
urlStr+=`?submitter=${submitter}`;
49+
}
3950
buttonAjax($(this), {
40-
url: '/additional',
51+
url: urlStr,
4152
method: 'GET',
4253
success: function (data, textStatus, jqXHR) {
4354
$("#moreQuotes").html(data)

quotefault/templates/bootstrap/settings.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
<div class="card my-3">
55
<div class="card-body text-center">
66
<form action="/settings" method="POST">
7-
<label for="template">Template</label>
7+
<!-- <label for="template">Template</label>
88
<select class="form-control" name="template" title="Template">
99
<option value="bootstrap">Bootstrap</option>
1010
<option value="flag">Flag</option>
1111
</select>
12-
<br>
12+
<br> -->
1313
<label for="plug">Plug Ads</label>
1414
<select class="form-control" name="plug" title="Plug Ads">
1515
<option value="on" {% if metadata.plug == 'True' %}selected="selected"{% endif %}>On</option>

quotefault/templates/bootstrap/storage.html

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,10 @@
4444
</div>
4545
</div>
4646
{% endfor %}
47-
{% if metadata['submitter'] == None and metadata['speaker'] == None %}
48-
<button href="#moreQuotes" id="get_more" data-toggle="collapse" class="btn btn-default center-block">But wait, there's more!</button>
49-
<br>
50-
<div id="moreQuotes" class="collapse" aria-expanded="false">
51-
</div>
52-
{% endif %}
47+
<button href="#moreQuotes" id="get_more" data-toggle="collapse" class="btn btn-default center-block">But wait, there's more!</button>
48+
<br>
49+
<div id="moreQuotes" class="collapse" aria-expanded="false">
50+
</div>
5351
</div>
5452
{% endblock %}
5553

quotefault/templates/flag/additional_quotes.html

Lines changed: 0 additions & 6 deletions
This file was deleted.

quotefault/templates/flag/main.html

Lines changed: 0 additions & 70 deletions
This file was deleted.

0 commit comments

Comments
 (0)