from flask import render_template, request, session, redirect, url_for, flash, Blueprint
from modules.database_modules import db_connect
from functions.date_time_functions import upload_time
from htmlmin.minify import html_minify


admin_upload_lattan_result = Blueprint("admin_upload_lattan_result", __name__, static_folder="static",
                                       template_folder="templates")


@admin_upload_lattan_result.route("/", methods=['GET'])
def lattanResultMenu():
    if 'innerSession' in session:
        con = db_connect()
        cur = con.cursor(buffered=True)
        cur.execute('select * from lattan_question')
        qdata = cur.fetchall()
        return html_minify(render_template('admin_upload_lattan_result_menu.html', title='Lattan Baydin', qdata=qdata))
    return redirect(url_for('admin_login.adminLogin'))


@admin_upload_lattan_result.route("/data-insert", methods=['GET'])
def lattanResultCardInsert():
    if 'innerSession' in session:
        con = db_connect()
        cur = con.cursor(buffered=True)
        cur.execute('select * from lattan_days')
        days = cur.fetchall()
        cur.execute('select * from lattan_gender')
        gender = cur.fetchall()
        return html_minify(render_template('admin_upload_lattan_insert.html', days=days, gender=gender))
    return redirect(url_for('admin_login.adminLogin'))


@admin_upload_lattan_result.route("/data-update", methods=['GET'])
def lattanResultCardUpdate():
    if 'innerSession' in session:
        con = db_connect()
        cur = con.cursor(buffered=True)
        qid = request.args.get('qid')
        cur.execute('select * from lattan_days')
        days = cur.fetchall()
        cur.execute('select * from lattan_gender')
        gender = cur.fetchall()
        cur.execute(
            'select question_mm, question_eng, word_count from lattan_question where id=%s', (qid,))
        qData = cur.fetchall()
        cur.execute(
            'select day_id, gender_id, result_mm, result_eng, id from lattan_data where question_id=%s', (qid,))
        rData = cur.fetchall()
        return html_minify(render_template('admin_upload_lattan_update.html', days=days, gender=gender, qData=qData, rData=rData, qid=qid))
    return redirect(url_for('admin_login.adminLogin'))


@admin_upload_lattan_result.route("/upload-data", methods=['POST'])
def lattanResultUpload():
    if 'innerSession' in session and request.method == 'POST':
        con = db_connect()
        cur = con.cursor()
        wordCount = request.form['wordCount']

        question_mm = request.form['question_mm']
        question_eng = request.form['question_eng']

        result_mm_1_1 = request.form['result_mm_1_1']
        result_eng_1_1 = request.form['result_eng_1_1']
        result_mm_1_2 = request.form['result_mm_1_2']
        result_eng_1_2 = request.form['result_eng_1_2']
        result_mm_1_3 = request.form['result_mm_1_3']
        result_eng_1_3 = request.form['result_eng_1_3']
        result_mm_1_4 = request.form['result_mm_1_4']
        result_eng_1_4 = request.form['result_eng_1_4']
        result_mm_1_5 = request.form['result_mm_1_5']
        result_eng_1_5 = request.form['result_eng_1_5']
        result_mm_1_6 = request.form['result_mm_1_6']
        result_eng_1_6 = request.form['result_eng_1_6']
        result_mm_1_7 = request.form['result_mm_1_7']
        result_eng_1_7 = request.form['result_eng_1_7']

        result_mm_2_1 = request.form['result_mm_2_1']
        result_eng_2_1 = request.form['result_eng_2_1']
        result_mm_2_2 = request.form['result_mm_2_2']
        result_eng_2_2 = request.form['result_eng_2_2']
        result_mm_2_3 = request.form['result_mm_2_3']
        result_eng_2_3 = request.form['result_eng_2_3']
        result_mm_2_4 = request.form['result_mm_2_4']
        result_eng_2_4 = request.form['result_eng_2_4']
        result_mm_2_5 = request.form['result_mm_2_5']
        result_eng_2_5 = request.form['result_eng_2_5']
        result_mm_2_6 = request.form['result_mm_2_6']
        result_eng_2_6 = request.form['result_eng_2_6']
        result_mm_2_7 = request.form['result_mm_2_7']
        result_eng_2_7 = request.form['result_eng_2_7']

        datetime = upload_time()
        cur.execute('insert into lattan_question (question_mm,question_eng,word_count) values (%s,%s,%s)',
                    (question_mm, question_eng, wordCount))
        con.commit()
        cur.execute('select id from lattan_question order by id desc limit 1')
        question_id = cur.fetchone()[0]

        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 1, 1, result_mm_1_1, result_eng_1_1, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 2, 1, result_mm_1_2, result_eng_1_2, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 3, 1, result_mm_1_3, result_eng_1_3, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 4, 1, result_mm_1_4, result_eng_1_4, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 5, 1, result_mm_1_5, result_eng_1_5, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 6, 1, result_mm_1_6, result_eng_1_6, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 7, 1, result_mm_1_7, result_eng_1_7, datetime
        ))

        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 1, 2, result_mm_2_1, result_eng_2_1, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 2, 2, result_mm_2_2, result_eng_2_2, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 3, 2, result_mm_2_3, result_eng_2_3, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 4, 2, result_mm_2_4, result_eng_2_4, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 5, 2, result_mm_2_5, result_eng_2_5, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 6, 2, result_mm_2_6, result_eng_2_6, datetime
        ))
        cur.execute('insert into lattan_data (\
            question_id, day_id, gender_id, result_mm, result_eng, datetime \
            ) values (%s,%s,%s,%s,%s,%s)', (
            question_id, 7, 2, result_mm_2_7, result_eng_2_7, datetime
        ))
        con.commit()
        flash('Successfully submitted.', 'success')
        con.disconnect()
        return redirect(url_for('admin_upload_lattan_result.lattanResultMenu'))
    return redirect(url_for('admin_login.adminLogin'))


@admin_upload_lattan_result.route("/update-data", methods=['POST'])
def lattanResultUpdate():
    if 'innerSession' in session and request.method == 'POST':
        con = db_connect()
        cur = con.cursor()
        question_id = request.form['qid']
        wordCount = request.form['wordCount']

        question_mm = request.form['question_mm']
        question_eng = request.form['question_eng']

        # rid_1_1 = request.form['rid_1_1']
        # rid_1_2 = request.form['rid_1_2']
        # rid_1_3 = request.form['rid_1_3']
        # rid_1_4 = request.form['rid_1_4']
        # rid_1_5 = request.form['rid_1_5']
        # rid_1_6 = request.form['rid_1_6']
        # rid_1_7 = request.form['rid_1_7']
        # rid_2_1 = request.form['rid_2_1']
        # rid_2_2 = request.form['rid_2_2']
        # rid_2_3 = request.form['rid_2_3']
        # rid_2_4 = request.form['rid_2_4']
        # rid_2_5 = request.form['rid_2_5']
        # rid_2_6 = request.form['rid_2_6']
        # rid_2_7 = request.form['rid_2_7']

        result_mm_1_1 = request.form['result_mm_1_1']
        result_eng_1_1 = request.form['result_eng_1_1']
        result_mm_1_2 = request.form['result_mm_1_2']
        result_eng_1_2 = request.form['result_eng_1_2']
        result_mm_1_3 = request.form['result_mm_1_3']
        result_eng_1_3 = request.form['result_eng_1_3']
        result_mm_1_4 = request.form['result_mm_1_4']
        result_eng_1_4 = request.form['result_eng_1_4']
        result_mm_1_5 = request.form['result_mm_1_5']
        result_eng_1_5 = request.form['result_eng_1_5']
        result_mm_1_6 = request.form['result_mm_1_6']
        result_eng_1_6 = request.form['result_eng_1_6']
        result_mm_1_7 = request.form['result_mm_1_7']
        result_eng_1_7 = request.form['result_eng_1_7']

        result_mm_2_1 = request.form['result_mm_2_1']
        result_eng_2_1 = request.form['result_eng_2_1']
        result_mm_2_2 = request.form['result_mm_2_2']
        result_eng_2_2 = request.form['result_eng_2_2']
        result_mm_2_3 = request.form['result_mm_2_3']
        result_eng_2_3 = request.form['result_eng_2_3']
        result_mm_2_4 = request.form['result_mm_2_4']
        result_eng_2_4 = request.form['result_eng_2_4']
        result_mm_2_5 = request.form['result_mm_2_5']
        result_eng_2_5 = request.form['result_eng_2_5']
        result_mm_2_6 = request.form['result_mm_2_6']
        result_eng_2_6 = request.form['result_eng_2_6']
        result_mm_2_7 = request.form['result_mm_2_7']
        result_eng_2_7 = request.form['result_eng_2_7']

        datetime = upload_time()
        cur.execute('update lattan_question set question_mm=%s,question_eng=%s,word_count=%s where id=%s',
                    (question_mm, question_eng, wordCount, question_id))
        con.commit()

        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_1, result_eng_1_1, datetime, question_id, 1, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_2, result_eng_1_2, datetime, question_id, 2, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_3, result_eng_1_3, datetime, question_id, 3, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_4, result_eng_1_4, datetime, question_id, 4, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_5, result_eng_1_5, datetime, question_id, 5, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_6, result_eng_1_6, datetime, question_id, 6, 1
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_1_7, result_eng_1_7, datetime, question_id, 7, 1
        ))

        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_1, result_eng_2_1, datetime, question_id, 1, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_2, result_eng_2_2, datetime, question_id, 2, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_3, result_eng_2_3, datetime, question_id, 3, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_4, result_eng_2_4, datetime, question_id, 4, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_5, result_eng_2_5, datetime, question_id, 5, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_6, result_eng_2_6, datetime, question_id, 6, 2
        ))
        cur.execute('update lattan_data set\
             result_mm=%s, result_eng=%s, datetime=%s  where question_id=%s and day_id=%s and gender_id=%s\
            ', (
            result_mm_2_7, result_eng_2_7, datetime, question_id, 7, 2
        ))
        con.commit()
        flash('Successfully submitted.', 'success')
        con.disconnect()
        return redirect(url_for('admin_upload_lattan_result.lattanResultCardUpdate', qid=question_id))
    return redirect(url_for('admin_login.adminLogin'))


@admin_upload_lattan_result.route("/delete-data", methods=['GET'])
def lattanResultDelete():
    if 'innerSession' in session:
        con = db_connect()
        cur = con.cursor()
        qid = request.args.get('qid')
        cur.execute('delete from lattan_question where id=%s', (qid,))
        cur.execute('delete from lattan_data where question_id=%s', (qid,))
        con.commit()
        con.disconnect()
        flash('Successfully deleted', 'warning')
        return redirect(url_for('admin_upload_lattan_result.lattanResultMenu'))
    return redirect(url_for('admin_login.adminLogin'))
# *************************************************************************************************************************************************
