#!/usr/bin/python # -*- coding: UTF-8 -*- from uuid import uuid4 from flask import Blueprint from flask import jsonify, request from utils.decorator import admin_required from utils.template import my_render_template import config from utils.sql import sql_insert_generate afis_view = Blueprint( "afis", __name__, template_folder = "templates" ) @afis_view.route( "/afis/get/list" ) def download_list(): return my_render_template( "afis/search_list.html" ) @afis_view.route( "/admin/afis/list" ) @admin_required def admin_list(): sql = """ SELECT cnm_folder.uuid, users.username FROM cnm_folder INNER JOIN submissions ON submissions.uuid = cnm_folder.donor INNER JOIN users ON submissions.donor_id = users.id """ folders = config.db.query_fetchall( sql ) sql = """ SELECT submissions.uuid, users.username FROM submissions LEFT JOIN users ON submissions.donor_id = users.id LEFT JOIN cnm_folder ON submissions.uuid = cnm_folder.donor WHERE cnm_folder.uuid IS NULL ORDER BY users.id ASC """ donors = config.db.query_fetchall( sql ) return my_render_template( "afis/admin/list.html", folders = folders, donors = donors ) @afis_view.route( "/admin/afis/new_folder", methods = [ "POST" ] ) @admin_required def admin_add_new_folder(): try: donor_uuid = request.form.get( "donor_uuid", False ) sql = "SELECT count( * ) AS nb FROM cnm_folder WHERE donor = %s" nb = config.db.query_fetchone( sql, ( donor_uuid, ) )[ "nb" ] if nb == 0: sql = sql_insert_generate( "cnm_folder", [ "donor", "uuid" ], "id" ) config.db.query_fetchone( sql, ( donor_uuid, str( uuid4() ) ) ) config.db.commit() return jsonify( { "error": False } ) except: return jsonify( { "error": True } ) @afis_view.route( "/admin/afis/" ) @admin_required def admin_folder_show( folder_id ): return my_render_template( "afis/admin/folder.html" )