Skip to content

Commit

Permalink
trash feature
Browse files Browse the repository at this point in the history
  • Loading branch information
marudor committed Dec 28, 2017
1 parent b328d7e commit 89aa561
Show file tree
Hide file tree
Showing 17 changed files with 1,543 additions and 108 deletions.
48 changes: 39 additions & 9 deletions c3bottles/views/main.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import qrcode
from sqlalchemy import or_
from sqlalchemy import or_, and_
from base64 import b64encode
from cairosvg import svg2pdf
from PyPDF2 import PdfFileWriter, PdfFileReader
Expand Down Expand Up @@ -52,11 +52,11 @@ def dp_list_js_trash():

@c3bottles.route("/bottle/map")
def dp_map_bottle():
return render_template("map.html",js_name="dp_map_js_bottle")
return render_template("map.html",js_name="dp_map_js_bottle",dp_type="drop_point")

@c3bottles.route("/trash/map")
def dp_map_trash():
return render_template("map.html",js_name="dp_map_js_trash")
return render_template("map.html",js_name="dp_map_js_trash",db_type="trashcan")


@c3bottles.route("/bottle/map.js")
Expand Down Expand Up @@ -115,7 +115,7 @@ def dp_view_js(number):
def dp_label(number=None):
dp = DropPoint.get(number)
if dp:
return Response(_pdf(number), mimetype="application/pdf")
return Response(_pdf(number, dp.type), mimetype="application/pdf")
else:
return render_template(
"error.html",
Expand All @@ -124,11 +124,35 @@ def dp_label(number=None):
)


@c3bottles.route("/bottle/label/all.pdf")
def dp_all_labels_bottle():
output = PdfFileWriter()
for dp in db.session.query(DropPoint).filter(and_(or_(DropPoint.removed == None, ~DropPoint.removed), DropPoint.type == 'drop_point')).all():
output.addPage(PdfFileReader(BytesIO(_pdf(dp.number, dp.type))).getPage(0))
f = BytesIO()
output.write(f)
return Response(
f.getvalue(),
mimetype="application/pdf"
)

@c3bottles.route("/label/all.pdf")
def dp_all_labels():
output = PdfFileWriter()
for dp in db.session.query.filter(or_(DropPoint.removed == None, ~DropPoint.removed)).all():
output.addPage(PdfFileReader(BytesIO(_pdf(dp.number))).getPage(0))
for dp in db.session.query(DropPoint).filter(or_(DropPoint.removed == None, ~DropPoint.removed)).all():
output.addPage(PdfFileReader(BytesIO(_pdf(dp.number, dp.type))).getPage(0))
f = BytesIO()
output.write(f)
return Response(
f.getvalue(),
mimetype="application/pdf"
)

@c3bottles.route("/trash/label/all.pdf")
def dp_all_labels_trash():
output = PdfFileWriter()
for dp in db.session.query(DropPoint).filter(and_(or_(DropPoint.removed == None, ~DropPoint.removed), DropPoint.type == 'trashcan')).all():
output.addPage(PdfFileReader(BytesIO(_pdf(dp.number, dp.type))).getPage(0))
f = BytesIO()
output.write(f)
return Response(
Expand All @@ -137,10 +161,16 @@ def dp_all_labels():
)


def _pdf(number):


def _pdf(number, type):
img = qrcode.make(request.url_root + str(number))
f = BytesIO()
img.save(f)
b64 = b64encode(f.getvalue()).decode("utf-8")

return svg2pdf(render_template("empty34c3.svg", number=number, qr=b64))

if (type == 'drop_point'):
return svg2pdf(render_template("empty34c3.svg", number=number, qr=b64))
else:
return svg2pdf(render_template("empty34c3_trash.svg", number=number, qr=b64))

7 changes: 6 additions & 1 deletion c3bottles/views/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,16 @@ def report(number=None):
errors=[v for d in e.args for v in d.values()]
)
else:
if dp.type == "drop_point":
back = "/bottle/map"
else:
back = "/trash/map"
db.session.commit()
return render_template(
"success.html",
heading="Thank you!",
text="Your report has been received successfully."
text="Your report has been received successfully.",
back=back
)
else:
return render_template(
Expand Down
7 changes: 6 additions & 1 deletion c3bottles/views/visit.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,16 @@ def visit(number=None):
errors=[v for d in e.args for v in d.values()]
)
else:
if dp.type == "drop_point":
back = "/bottle/map"
else:
back = "/trash/map"
db.session.commit()
return render_template(
"success.html",
heading="Thank you!",
text="Your visit has been processed successfully."
text="Your visit has been processed successfully.",
back=back
)
else:
return render_template(
Expand Down
2 changes: 0 additions & 2 deletions js/dp_modals.js
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,6 @@ global.show_dp_modal = function(num, pane) {
if (details.type === 'trashcan') {
$('.modal_dp-title').text(gettext('Trashcan'));
$('#dp_modal_visit_link').hide();
// eslint-disable-next-line
pane = 'details';
} else {
$('.modal_dp-title').text(gettext('Drop Point'));
$('#dp_modal_visit_link').show();
Expand Down
2 changes: 1 addition & 1 deletion js/map.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ global.init_map = function() {

global.get_icon = function(type, pointtype) {
if (pointtype === 'trashcan') {
type = 'NEW_TRASH';
type += '_TRASH';
}
const size = 12;
let zoom = 6 - (map.getMaxZoom() - map.getZoom());
Expand Down
36 changes: 24 additions & 12 deletions static/img/markers/CREATED_TRASH.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 24 additions & 12 deletions static/img/markers/DEFAULT_TRASH.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 24 additions & 12 deletions static/img/markers/EMPTY_TRASH.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 24 additions & 12 deletions static/img/markers/FULL_TRASH.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 24 additions & 12 deletions static/img/markers/OVERFLOW_TRASH.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 89aa561

Please sign in to comment.