From 87b1348ddd08d64e96409080d74d13edfd986b5d Mon Sep 17 00:00:00 2001 From: crunk Date: Sun, 18 Apr 2021 00:07:16 +0200 Subject: [PATCH] added function comments and code cleanup --- library/borrowform.py | 3 +-- library/csvparser/csvparser.py | 16 +++++++++++++--- library/page.py | 12 ++++++++---- library/uploadform.py | 1 - 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/library/borrowform.py b/library/borrowform.py index 19aa60a..953e1dd 100644 --- a/library/borrowform.py +++ b/library/borrowform.py @@ -8,9 +8,8 @@ from wtforms import validators from wtforms.validators import Length - class BorrowForm(FlaskForm): - """Borrow a book form.""" + """Borrow a publication form.""" borrowed = StringField( "Fill in your name if you're going to borrow this publication.", diff --git a/library/csvparser/csvparser.py b/library/csvparser/csvparser.py index db93946..e46e4f5 100644 --- a/library/csvparser/csvparser.py +++ b/library/csvparser/csvparser.py @@ -25,6 +25,7 @@ fieldnames = [ def parsecsv(): + """Test function to inspect csv file as dict""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -32,6 +33,7 @@ def parsecsv(): def getpublications(): + """get an overview of all publications for the main page""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -54,9 +56,8 @@ def getpublications(): def hasimage(id): + """does this Id from the csv have an image uploaded""" image_jpg = os.path.join(image_dir, "image-{0}.jpg".format(id)) - image_png = os.path.join(image_dir, "image-{0}.png".format(id)) - image_gif = os.path.join(image_dir, "image-{0}.gif".format(id)) if os.path.exists(image_jpg): return True else: @@ -64,6 +65,7 @@ def hasimage(id): def gettypes(): + """for the dynamic menu get the unique types of publicatons""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -76,6 +78,7 @@ def gettypes(): def getyears(): + """for the dynamic menu get the unique years for publicatons""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -91,6 +94,7 @@ def getyears(): def getlicenses(): + """for the dynamic menu get the unique liscenses for publicatons""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -105,6 +109,7 @@ def getlicenses(): def getfieldsofinterest(): + """for the R&R page get the fields of interest from the publicatons""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") with libcsv: csv_as_dict = csv.DictReader(libcsv) @@ -116,6 +121,7 @@ def getfieldsofinterest(): def getpublicationfromcsvrow(row): + """get entire publication info from a csv row""" year = row["Year"] if not year: year = "Unknown" @@ -146,6 +152,7 @@ def getpublicationfromcsvrow(row): def getfullpublication(pubid): + """For the single book view, most complete overview""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") pubinfo = {} with libcsv: @@ -159,6 +166,7 @@ def getfullpublication(pubid): def generatenewpublicationid(): + """When uploading a book generate a new unique ID""" libcsv = open(os.path.join(script_dir, "varlib.csv"), "r") allidsincsv = [] with libcsv: @@ -169,6 +177,7 @@ def generatenewpublicationid(): def writepublication(uploadform): + """When uploading a publication writes entry to the csv""" id = generatenewpublicationid() with open( os.path.join(script_dir, "varlib.csv"), @@ -196,12 +205,13 @@ def writepublication(uploadform): def editborrowedby(pubid, borrower): + """Edits the borrowed by field for a publication entry in csv""" tempfile = NamedTemporaryFile('w+t', newline='', delete=False) filename = os.path.join(script_dir, "varlib.csv") with open(filename, 'r', newline='') as libcsv, tempfile: csv_as_dict = csv.DictReader(libcsv) csv_as_writer = csv.DictWriter(tempfile, fieldnames=fieldnames) - #use the reader to read where, then writer to write the new row. + # use the reader to read where, then writer to write the new row. csv_as_writer.writeheader() for row in csv_as_dict: if pubid == row["Id"]: diff --git a/library/page.py b/library/page.py index ff7220d..81c7acf 100644 --- a/library/page.py +++ b/library/page.py @@ -28,7 +28,6 @@ from csvparser.csvparser import ( ) - csrf = CSRFProtect() APP = flask.Flask(__name__, static_folder="static") APP.config['SECRET_KEY'] = 'ty4425hk54a21eee5719b9s9df7sdfklx' @@ -54,6 +53,7 @@ def index(): @APP.route("/upload", methods=["GET", "POST"]) def upload(): + """Upload route, a page to upload a book to the csv""" uploadform = PublicationForm() if request.method == 'POST': if (uploadform.validate_on_submit() and @@ -69,7 +69,7 @@ def upload(): @APP.route("/", methods=["GET", "POST"]) def show_book(publicationID): - """route for a publication, still needs to be made""" + """route for a single publication, shows full info and allows borrowing""" fullpublication = getfullpublication(publicationID) borrowform = BorrowForm() if request.method == 'POST': @@ -94,20 +94,21 @@ def show_book(publicationID): @APP.route("/pastevents") def pastevents(): - """show past events and book recommendations""" + """show past R&R events and book recommendations""" events = getevents() return render_template("pastevents.html", events=events) @APP.route("/upcoming") def latestevent(): - """show upcoming or latest event and book recommendations""" + """show upcoming or latest R&R events and book recommendations""" event = getlatestevent() return render_template("upcomingevent.html", event=event) @APP.context_processor def upcoming_or_latest(): + """determines wether the newest R&R event is upcoming or not""" upcoming = True ics = get("https://varia.zone/events.ics").text gcal = Calendar.from_ical(ics) @@ -124,13 +125,16 @@ def upcoming_or_latest(): return dict(upcoming=upcoming) + def saveimage(image, id): + """helper function that can save images""" print(image.filename) filename = secure_filename("image-{0}.jpg".format(id)) image.save(os.path.join("static/images/", filename)) def checksecret(secret): + """small simple check to a secret, library group members can upload""" with open("secret") as f: secrethash = f.readline().rstrip() if bcrypt.checkpw(secret.encode("utf-8"), secrethash.encode("utf-8")): diff --git a/library/uploadform.py b/library/uploadform.py index d1b7686..cf281af 100644 --- a/library/uploadform.py +++ b/library/uploadform.py @@ -1,7 +1,6 @@ """Form object declaration.""" from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileAllowed -from werkzeug.utils import secure_filename from wtforms import validators from wtforms import ( StringField,