Newer
Older
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from flask import Blueprint, session, current_app
from utils.decorator import login_required, admin_required
from utils.template import my_render_template
from NIST.fingerprint.labels import FINGER_POSITION_CODE, PALM_POSITION_CODE
segments_position_code = dict( FINGER_POSITION_CODE, **PALM_POSITION_CODE )
afis_view = Blueprint( "afis", __name__, template_folder = "templates" )
@afis_view.route( "/admin/afis/list" )
@admin_required
def admin_list_folders():

Marco De Donno
committed
@afis_view.route( "/afis/list" )
@login_required
def list_folders():
user_id = session.get( "user_id", None )
sql = """
SELECT
cnm_assignment.folder_uuid,
tmp.*
FROM cnm_assignment
LEFT JOIN cnm_folder ON cnm_assignment.folder_uuid = cnm_folder.folder_uuid
LEFT JOIN (
SELECT DISTINCT ON ( donor_id, pc ) *
FROM donor_segments_v
) AS tmp ON cnm_folder.donor_id = tmp.donor_id AND cnm_folder.pc = tmp.pc
WHERE cnm_assignment.user_id = %s
ORDER BY
tmp.donor_id ASC,
tmp.pc ASC
"""
folder_list = config.db.query_fetchall( sql, ( user_id, ) )
return my_render_template(
"afis/folder_list.html",
folder_list = folder_list
)
@afis_view.route( "/admin/target/<uuid>" )
@admin_required
def admin_show_target( uuid ):
return show_folder_inner( uuid, True )
@afis_view.route( "/afis/<uuid>" )
@login_required
def show_folder( uuid ):
return show_folder_inner( uuid, False )
def show_folder_inner( uuid, admin ):
sql = """
SELECT
cnm_assignment.folder_uuid,
donor_segments_v.*
FROM cnm_assignment
LEFT JOIN cnm_folder ON cnm_assignment.folder_uuid = cnm_folder.folder_uuid
LEFT JOIN donor_segments_v ON cnm_folder.donor_id = donor_segments_v.donor_id AND cnm_folder.pc = donor_segments_v.pc
WHERE cnm_assignment.folder_uuid = %s
ORDER BY
donor_segments_v.donor_id ASC,
donor_segments_v.pc ASC
"""
segments_list = config.db.query_fetchall( sql, ( uuid, ) )
sql = """
SELECT uuid
FROM cnm_data
WHERE folder_uuid = %s
"""
annotation_list = config.db.query_fetchall( sql, ( uuid, ) )
"shared/segment.html",
segments_list = segments_list,
annotation_list = annotation_list
@afis_view.route( "/admin/<uuid>/target/list" )
@admin_required
def admin_show_target_list( uuid ):
sql = """
SELECT DISTINCT ON ( donor_segments_v.pc )
donor_segments_v.*,
cnm_folder.folder_uuid
FROM donor_segments_v
LEFT JOIN submissions ON submissions.donor_id = donor_segments_v.donor_id
LEFT JOIN cnm_folder ON donor_segments_v.donor_id = cnm_folder.donor_id AND donor_segments_v.pc = cnm_folder.pc
WHERE submissions.uuid = %s
"""
segments_list = config.db.query_fetchall( sql, ( uuid, ) )
return my_render_template(
"admin/folder_list.html",
segments_list = segments_list,
segments_position_code = segments_position_code