from flask import Flask , render_template , Markup , jsonify , session , request
import json
import os
from json import dumps
import collections
import random
import string
app = Flask ( __name__ , static_url_path = ' ' , static_folder = " static " , template_folder = " templates " )
app . jinja_env . add_extension ( ' jinja2.ext.loopcontrols ' )
# SETTING THE VARIABLES
path = " /static/files/ "
max_selected_items = 30
#move this list to Jinja so it can be placed in layout
#give back clicked value
# librarians = ["Alana", "Gentian", "Laurie", "Matias", "Scott", "Stacy", "Max", "Clara_B", "Michelle", "Clara_J_B", "Karen", "Lumsden_Primary_School", "Aaron", "Leo", "Maria", "Laura", "Honey", "Tender_Center", "wdka", "Naomi", "Cristina", "Julie", "ssw", "cyberspace", "Hannah", "Katarina", "Anastasia", "Kimmy", "Marie","Katherine", "Allison", "Mariana", "Viki", "Alice", "Eric", "hks", "cbk", "Sophie", "Antonio", "Jeremiah", "Angela", "Renee", "Marta", "Katherine", "Anna", "Auryn", "Ashley", "Anne", "Denise", "Eva", "Jonnah", "Kitty", "Masha", "Mia", "Cian", "Senke", "Maud", "Jinnie", "Rubin", "Julia", "Alana", "Gentian", "Laurie", "Matias","Scott", "Stacy"]
librarians = [ ]
files_without_folders = [ ]
with open ( ' static/js/mergedjson.json ' , ' r ' , encoding = ' utf8 ' ) as filesandnames :
filetoname_dict = json . load ( filesandnames )
#get full list librarians from json (printed later through global variable)
for file in filetoname_dict :
for name in file [ " librarian " ] :
librarians . append ( str ( name ) )
librarians = list ( dict . fromkeys ( librarians ) )
#this value we should get from template
librarianselected = " Ruben "
#go from librarian name to file
for file in filetoname_dict :
# if librarianselected in file["librarian"]:
thedebris = file [ " debrisname " ]
#apply regex to the debris
thedebris = os . path . basename ( thedebris )
files_without_folders . append ( str ( thedebris ) )
# print(str(librarianselected)+" contributed with the following debris : "+str(thedebris))
#this value we should get from template
fileselected = filetoname_dict [ 1 ] [ " debrisname " ]
#go from file name to librarian name
for file in filetoname_dict :
if fileselected in file [ " debrisname " ] :
thelibrarian = file [ " librarian " ]
print ( " librarians for " + str ( fileselected ) + " are: " + str ( thelibrarian ) )
print ( " --------------------------------------------------- " )
# preparing a index.json file of files
index_dict = { }
@app . route ( " / " , methods = [ ' POST ' , ' GET ' ] )
def home ( ) :
if request . args :
# We have our query string nicely serialized as a Python dictionary
args = request . args
# We'll create a string to display the parameters & values
# serialized = ", ".join(f"{k}: {v}" for k, v in request.args.items())
# Display the query string to the client in a different format
# return f"(Query) {serialized}", 200
urllibrarian = request . args . getlist ( ' librarian ' ) # new
urlmethod = request . args . getlist ( ' method ' ) # new
for a in urllibrarian :
print ( ' urllibrarian is: ' + a )
for b in urlmethod :
print ( ' urlmethod is: ' + b )
#unsure if Im really using that for now I think not
# selected = "textbysomeone"
# selections = collections.deque(session['selection'], maxlen=max_selected_items) #?
# selections.append(selected)
# session['selection'] = list(selections)
return render_template ( ' layout.html ' , urllibrarian = urllibrarian , urlmethod = urlmethod , filetoname_dict = filetoname_dict , librarians = librarians , files_without_folders = files_without_folders ) # new
@app . route ( ' /about/ ' )
def about ( ) :
selectedstuff = session [ ' selection ' ]
return render_template ( ' about.html ' , selectedstuff = selectedstuff )
@app . route ( ' /exchange ' )
def exchange ( ) :
return render_template ( ' exchange.html ' )
@app . route ( ' /test/ ' , methods = [ ' GET ' , ' POST ' ] )
def test ( ) :
print ( " test " )
clicked = None
if request . method == " POST " :
# clicked=request.form['data']
listofselecteddocs = request . get_json ( )
print ( " hallo " )
print ( listofselecteddocs )
print ( " hola " )
return render_template ( ' test.html ' )