Exemple #1
0
def papers_delete(paperID):
    """ Delete Paper """
    connection = engine.connect()
    transaction = connection.begin()
    return_status = paper.delete(connection, paperID)
    transaction.commit()
    return return_status
Exemple #2
0
def filmstock():
    """ Filmstock Index """
    connection = engine.connect()
    transaction = connection.begin()
    userID = current_user.get_id()
    form = FilmStockForm(connection)

    if request.method == 'POST':
        if request.form.get('button') == 'add':
            qty = request.form.get('qty')
            if request.form.get('filmTypeID') != '':
                if qty != '':
                    qty = int(qty)
                    qry = text("""REPLACE INTO FilmStock
                        (filmTypeID, filmSizeID, userID, qty)
                        VALUES (:filmTypeID, :filmSizeID, :userID, :qty)""")
                    connection.execute(qry,
                                       filmTypeID=form.filmTypeID.data,
                                       filmSizeID=form.filmSizeID.data,
                                       qty=form.qty.data,
                                       userID=userID)

    qry = text("""SELECT FilmTypes.filmTypeID AS filmTypeID,
        FilmTypes.name AS type, iso
        FROM FilmTypes
        WHERE userID = :userID""")
    films = connection.execute(qry, userID=userID).fetchall()

    transaction.commit()
    return render_template('films/stock.html', form=form, films=films)
Exemple #3
0
def user_holders():
    """ Manage holders """
    connection = engine.connect()
    transaction = connection.begin()
    userID = current_user.get_id()
    form = HolderForm()

    if request.method == 'POST':
        if request.form['button'] == 'addHolder':
            nextHolderID = next_id(connection, 'holderID', 'Holders')
            qry = text("""INSERT INTO Holders
                (userID, holderID, name, size, notes)
                VALUES (:userID, :holderID, :name, :size, :notes)""")
            connection.execute(qry,
                               userID=userID,
                               holderID=nextHolderID,
                               name=form.name.data,
                               size=form.size.data,
                               notes=form.notes.data)
    form.populate_select_fields(connection)
    transaction.commit()

    if request.args.get('print'):
        template = '/gear/holders-print.html'
    else:
        template = '/gear/holders.html'

    return render_template(template, form=form)
Exemple #4
0
def user_lens(lensID):
    """ Manage a specific lens """
    connection = engine.connect()
    transaction = connection.begin()
    userID = current_user.get_id()
    shutter_speed_form = LensShutterSpeedsForm()

    if request.method == 'POST':
        if request.form['button'] == 'addSpeed':
            if shutter_speed_form.validate_on_submit():
                qry = text("""REPLACE INTO LensShutterSpeeds
                    (userID, lensID, speed, measuredSpeedMicroseconds)
                    VALUES (:userID, :lensID, :speed, :measuredSpeedMicroseconds)"""
                           )
                # pylint: disable=line-too-long
                # Haven't found a great way to format this without it being
                # more ugly.
                connection.execute(
                    qry,
                    speed=shutter_speed_form.speed.data,
                    measuredSpeedMicroseconds=shutter_speed_form.
                    measuredSpeedMicroseconds.data,
                    userID=userID,
                    lensID=lensID)
        if request.form['button'] == 'deleteSpeed':
            qry = text("""DELETE FROM LensShutterSpeeds
                WHERE userID = :userID
                AND lensID = :lensID
                AND speed = :speed""")
            connection.execute(qry,
                               userID=userID,
                               lensID=lensID,
                               speed=shutter_speed_form.speed.data)

    qry = text("""SELECT lensID, name, shutter
        FROM Lenses
        WHERE userID = :userID
        AND lensID = :lensID""")
    lens = connection.execute(qry, userID=userID, lensID=lensID).fetchone()

    qry = text("""SELECT speed, measuredSpeed,
        idealSpeedMicroseconds, measuredSpeedMicroseconds,
        differenceStops
        FROM LensShutterSpeeds
        WHERE userID = :userID
        AND lensID = :lensID""")
    shutter_speeds = connection.execute(qry, userID=userID,
                                        lensID=lensID).fetchall()
    transaction.commit()

    if request.args.get('print'):
        template = '/gear/lens-print.html'
    else:
        template = '/gear/lens.html'

    return render_template(template,
                           lens=lens,
                           shutter_speeds=shutter_speeds,
                           shutter_speed_form=shutter_speed_form)
Exemple #5
0
def load_camera(cameraID, filmTypeID):
    """ Get camera """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'PATCH':
        return_status = cameras.loadFilm(connection, cameraID, filmTypeID)
    transaction.commit()
    return return_status
Exemple #6
0
def all_film_test_graphs():
    """ Get all user's curves of film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = filmtests.get_all_test_curves(connection)
    transaction.commit()
    return return_status
Exemple #7
0
def enlargers_lenses():
    """ Get enlargers information """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = enlargers.get_all_lenses(connection)
    transaction.commit()
    return return_status
Exemple #8
0
def search_index():
    """ Index page for search section """
    connection = engine.connect()
    transaction = connection.begin()
    userID = current_user.get_id()
    search = re.escape(request.args.get('search'))

    qry = text("""SELECT Projects.binderID, Projects.projectID,
        Projects.name AS project_name, Binders.name AS binder_name,
        filmCount, Projects.createdOn
        FROM Projects
        JOIN Binders ON Binders.binderID = Projects.binderID
            AND Binders.userID = Projects.userID
        WHERE Projects.userID = :userID
        AND Projects.name LIKE ('%""" + search + """%')
        ORDER BY createdOn""")
    projects = connection.execute(qry, userID=userID, search=search).fetchall()

    qry = text("""SELECT filmID, Films.projectID, binderID,
        title, fileNo, fileDate,
        Films.iso AS iso, FilmTypes.name AS filmName,
        FilmSizes.size AS size, exposures,
        Cameras.name AS camera
        FROM Films
        JOIN Projects ON Projects.projectID = Films.projectID
            AND Projects.userID = Films.userID
        LEFT OUTER JOIN FilmTypes ON FilmTypes.filmTypeID = Films.filmTypeID
            AND FilmTypes.userID = Films.userID
        JOIN FilmSizes ON FilmSizes.filmSizeID = Films.filmSizeID
        JOIN Cameras ON Cameras.cameraID = Films.cameraID
            AND Cameras.userID = Films.userID
        WHERE Films.userID = :userID
        AND (Films.title LIKE ('%""" + search + """%')
        OR Films.notes LIKE ('%""" + search + """%'))
        ORDER BY fileDate""")
    films = connection.execute(qry, userID=userID).fetchall()

    qry = text("""SELECT Films.title AS film_title, Exposures.filmID,
        Films.projectID, Projects.binderID,
        exposureNumber, shutter, aperture,
        Exposures.subject, Exposures.notes
        FROM Exposures
        JOIN Films ON Films.filmID = Exposures.filmID
        JOIN Projects ON Projects.projectID = Films.projectID
            AND Projects.userID = Films.userID
        WHERE Exposures.userID = :userID
        AND (Exposures.subject LIKE ('%""" + search + """%')
        OR Exposures.notes LIKE ('%""" + search + """%'))
        ORDER BY Films.filmID, exposureNumber""")
    exposures = connection.execute(qry, userID=userID).fetchall()

    transaction.commit()
    return render_template('search.html',
                           search=search,
                           projects=projects,
                           films=films,
                           exposures=exposures)
Exemple #9
0
def cameras_active():
    """ Get cameras information """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = cameras.get_all(connection)
    transaction.commit()
    return return_status
Exemple #10
0
def filmstock_all():
    """ Get available filmstocks """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = filmstock.get_all(connection)
    transaction.commit()
    return return_status
Exemple #11
0
def holders_all_status(status):
    """ Get all user's holders filmstock information """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = holders.get_all(connection, status)
    transaction.commit()
    return return_status
Exemple #12
0
def all_film_test_curves(filmTypeID):
    """ Get all test curves of film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = filmtests.get_test_curves_from_film(
            connection, filmTypeID)
    transaction.commit()
    return return_status
Exemple #13
0
def film_sizes():
    """ Get global film size information """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = films.get_film_sizes(connection)
    transaction.commit()
    return return_status
Exemple #14
0
def film_tests(filmTypeID):
    """ Get user's film tests for specific film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = filmtests.get_tests(connection, filmTypeID)
    if request.method == 'POST':
        return_status = filmtests.add_test(connection, filmTypeID)
    transaction.commit()
    return return_status
Exemple #15
0
def films_all(binderID, projectID):
    """ Get details of a project """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = films.get_all(connection, binderID, projectID)
    if request.method == 'POST':
        return_status = films.post(connection, projectID)
    transaction.commit()
    return return_status
Exemple #16
0
def film_type_details(filmTypeID):
    """ Get film type details """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = films.get_film_type(connection, filmTypeID)
    if request.method == 'DELETE':
        return_status = films.delete_film_type(connection, filmTypeID)
    transaction.commit()
    return return_status
Exemple #17
0
def step_tablets():
    """ Get all user's step tablets and add new ones"""
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = steptablets.get_step_tablets(connection)
    if request.method == 'POST':
        return_status = steptablets.add_step_tablet(connection)
    transaction.commit()
    return return_status
Exemple #18
0
def binders_all():
    """ Get all binders """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = binders.get_all(connection)
    elif request.method == 'POST':
        return_status = binders.post(connection)
    transaction.commit()
    return return_status
Exemple #19
0
def user_preferences():
    """ Get user's preferences """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = user.get_preferences(connection)
    if request.method == 'PATCH':
        return_status = user.patch_preferences(connection)
    transaction.commit()
    return return_status
Exemple #20
0
def camera(cameraID):
    """ Get camera """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = cameras.get(connection, cameraID)
    if request.method == 'PATCH':
        return_status = cameras.patch(connection, cameraID)
    transaction.commit()
    return return_status
Exemple #21
0
def papers_all():
    """ Get User's Papers """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = paper.get_all(connection)
    if request.method == 'POST':
        return_status = paper.post(connection)
    transaction.commit()
    return return_status
Exemple #22
0
def film_details(binderID, projectID, filmID):
    """ Get details of a film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = films.get(connection, binderID, projectID, filmID)
    if request.method == 'DELETE':
        return_status = films.delete(connection, filmID)
    transaction.commit()
    return return_status
Exemple #23
0
def holder_details(holderID):
    """ Get detailed holder information """
    connection = engine.connect()
    transaction = connection.begin()
    #if request.method == 'GET':
    #    return_status = filmstock.get(connection, filmTypeID, filmSizeID)
    if request.method == 'PATCH':
        return_status = holders.patch(connection, holderID)
    transaction.commit()
    return return_status
Exemple #24
0
def projects_all(binderID):
    """ Get all projects under a binder """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = projects.get_all(connection, binderID)
    elif request.method == 'POST':
        return_status = projects.post(connection, binderID)
    transaction.commit()
    return return_status
Exemple #25
0
def film_test(filmTypeID, filmTestID):
    """ Get user's film test for specific film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = filmtests.get_test(connection, filmTypeID, filmTestID)
    if request.method == 'DELETE':
        return_status = filmtests.delete_test(connection, filmTypeID,
                                              filmTestID)
    transaction.commit()
    return return_status
Exemple #26
0
def step_tablet(stepTabletID):
    """ Specifc step tablet interactions """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = steptablets.get_step_tablet(connection, stepTabletID)
    if request.method == 'DELETE':
        return_status = steptablets.delete_step_tablet(connection,
                                                       stepTabletID)
    transaction.commit()
    return return_status
Exemple #27
0
def films_list():
    """ Get user's film types """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = films.get_film_types(connection)
    elif request.method == 'POST':
        return_status = films.add_film_type(connection)
    transaction.commit()
    return return_status
Exemple #28
0
def binder_details(binderID):
    """ Get binder details """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = binders.get(connection, binderID)
    elif request.method == 'PATCH':
        return_status = binders.patch(connection, binderID)
    elif request.method == 'DELETE':
        return_status = binders.delete(connection, binderID)
    transaction.commit()
    return return_status
Exemple #29
0
def film_test_results(filmTypeID, filmTestID):
    """ Get user's film test for specific film """
    connection = engine.connect()
    transaction = connection.begin()
    if request.method == 'GET':
        return_status = filmtests.get_test_results(connection, filmTypeID,
                                                   filmTestID)
    if request.method == 'PATCH':
        return_status = filmtests.update_test_results(connection, filmTypeID,
                                                      filmTestID)
    transaction.commit()
    return return_status
Exemple #30
0
def filmstock_details(filmTypeID, filmSizeID):
    """ Get detailed filmstock information """
    connection = engine.connect()
    transaction = connection.begin()

    if request.method == 'GET':
        return_status = filmstock.get(connection, filmTypeID, filmSizeID)
    if request.method == 'PATCH':
        return_status = filmstock.patch(connection, filmTypeID, filmSizeID)
    if request.method == 'DELETE':
        return_status = filmstock.delete(connection, filmTypeID, filmSizeID)
    transaction.commit()
    return return_status