Пример #1
0
def addObservationToDb(req):
    birdCount = req['adultUnknownCount'] + req['adultFemaleCount'] + req['adultMaleCount'] + req['juvenileUnknownCount'] + req['juvenileFemaleCount'] + req['juvenileMaleCount'] + req['subadultUnknownCount'] + req['subadultFemaleCount'] + req['subadultMaleCount'] + req['unknownUnknownCount'] + req['unknownFemaleCount'] + req['unknownMaleCount']

    observation = Observation(species=req['species'],
        adultUnknownCount=req['adultUnknownCount'],
        adultFemaleCount=req['adultFemaleCount'],
        adultMaleCount=req['adultMaleCount'],
        juvenileUnknownCount=req['juvenileUnknownCount'],
        juvenileFemaleCount=req['juvenileFemaleCount'],
        juvenileMaleCount=req['juvenileMaleCount'],
        subadultUnknownCount=req['subadultUnknownCount'],
        subadultFemaleCount=req['subadultFemaleCount'],
        subadultMaleCount=req['subadultMaleCount'],
        unknownUnknownCount=req['unknownUnknownCount'],
        unknownFemaleCount=req['unknownFemaleCount'],
        unknownMaleCount=req['unknownMaleCount'],
        total_count = birdCount,
        direction=req['direction'],
        bypassSide=req['bypassSide'],
        notes=req['notes'],
        observationperiod_id=req['observationperiod_id'],
        shorthand_id=req['shorthand_id'])
    db.session().add(observation)
    
    db.session().commit()

    return jsonify(req)
def loginconfirm():

    personToken = request.args.get('token')

    if personToken is None:
        return redirect('/')

    req = requests.get('https://apitest.laji.fi/v0/person/' + personToken +
                       '?access_token=' + AUTH_TOKEN).json()

    userId = req['id']
    name = req['fullName']
    email = req['emailAddress']

    user = User.query.filter_by(userId=userId).first()
    if not user:
        user = User(userId=userId, fullName=name, email=email)
        db.session().add(user)
        db.session().commit()

    login_user(user)

    session.permanent = True

    session['token'] = personToken

    return redirect('/')
def addObservationPeriod():
    req = request.get_json()
    '''
    Ainakin sqlite-moottorissa tietokanta hyväksyy vain
    Pythonin omia datetime-olioita...
    '''

    day = getDay(req['day_id'])
    obsId = day.observatory_id
    locId = getLocationId(req['location'], obsId)

    createType(req['observationType'], obsId)

    obsp = Observationperiod(
        start_time=datetime.strptime(req['startTime'], '%H:%M'),
        end_time=datetime.strptime(req['endTime'], '%H:%M'),
        type_id=getTypeIdByName(req['observationType']),
        location_id=locId,
        day_id=req['day_id']
    )  #Tähän pitää lisätä pikakirjoitus sitten, kun se on frontissa tehty. Olio pitää luoda ennen tätä kohtaa (shorthand_id=req['shorthand_id'])
    db.session().add(obsp)
    #db.session().flush()
    #db.session().refresh(obsp)
    db.session().commit()

    #obspId = obsp.id
    obspId = getObsPerId(obsp.start_time, obsp.end_time, obsp.location_id,
                         obsp.day_id)
    #print("havaintojakson id on", obspId)
    return jsonify({'id': obspId})
def add_location():

    req = request.get_json()
    location = Location(name=req['name'], observatory_id=req['observatory_id'])

    db.session().add(location)
    db.session().commit()

    return req
def editShorthand(shorthand_id):
    shorthand=Shorthand.query.get(shorthand_id)
    shorthand_new = Day(shorthandrow = new_row, observationperiod_id = shorthand.observationperiod_id)
    shorthand.is_deleted = 1
    deleteObservation(shorthand_id)
    db.session().add(shorthand_new)
    db.session().commit()
    id = str(shorthand_new.id)
    return id
def addShorthand():
    req = request.get_json()
    shorthand = Shorthand(shorthandrow=req['row'],
        observationperiod_id=req['observationperiod_id'])
    db.session().add(shorthand)
    db.session().commit()

    shorthand_id = Shorthand.query.filter_by(
        shorthandrow=req['row'], observationperiod_id=req['observationperiod_id']).first().id

    return jsonify({'id': shorthand_id})
def edit_observers(day_id, observers):
    day = Day.query.get(day_id)
    day_new = Day(day=day.day,
                  comment=day.comment,
                  observers=observers,
                  observatory_id=day.observatory_id)
    day.is_deleted = 1
    addDay(day_new)
    setObsPerDayId(day.id, day_new.id)

    db.session().commit()

    return jsonify({"id": day_new.id})
Пример #8
0
def update_pdf(update_dict):
    log = PdfLog()
    log.action = "update"
    log.who = "web"
    item = Pdf.query.filter(Pdf.id == update_dict['id']).first()
    log.pdf_id = item.id
    log.old = json.dumps(item.to_dict())
    if item is None:
        raise Exception("记录不存在")
    for key in update_dict:
        if key == 'id':
            continue
        setattr(item, key, update_dict[key])
    log.new = json.dumps(item.to_dict())
    db.session().add(log)
    db.session().commit()
    return item.to_dict()
Пример #9
0
 def wrapper(*args, **kwargs):
     try:
         conn = db.session()
         result = func(conn=conn, *args, **kwargs)
         conn.commit()
         conn.close()
         return result
     except BaseException as e:
         conn.rollback()
         conn.close()
         raise Exception(str(e))
Пример #10
0
def testloginconfirm():

    personToken = request.args.get('token')

    if personToken != "MzJkNTVkMjAtZTFjZS00NzEzLTlkM2MtMmRjZGI1ODYyNGUw":
        return redirect('/')

    userId = 'asdf'
    name = 'Lintu Asema'
    email = '*****@*****.**'

    user = User.query.filter_by(userId=userId).first()
    if not user:
        user = User(userId=userId, fullName=name, email=email)
        db.session().add(user)
        db.session().commit()

    login_user(user)

    session.permanent = True

    session['token'] = personToken

    return redirect('/')
def addDay(day):
    d = Day.query.filter_by(day=day.day,
                            observatory_id=day.observatory_id,
                            is_deleted=0).first()
    if not d and day.observatory_id is not None and day.day is not None and day.observers is not None:
        db.session().add(day)
        db.session().commit()
    else:
        d.is_deleted = 1
        db.session().add(day)
        db.session.commit()
        setObsPerDayId(d.id, day.id)
Пример #12
0
def addObservationperiod(observationperiod):
    db.session().add(observationperiod)
    db.session().commit()
def createType(name, id):
    t = Type.query.filter_by(name=name, observatory_id=id).first()
    if not t:
        t = Type(name=name, observatory_id=id)
        db.session().add(t)
        db.session().commit()
def createObservatory(name):
    obs = Observatory.query.filter_by(name=name).first()
    if not obs:
        obs = Observatory(name=name)
        db.session().add(obs)
        db.session().commit()
Пример #15
0
def get_db():
    try:
        db = session()
        yield db
    finally:
        db.close()
Пример #16
0
def addObservation(observation):
    db.session().add(observation)
    db.session().commit()
Пример #17
0
def add_everything():

    req = request.get_json()
    observatory_id = getObservatoryId(req['observatory'])

    day = datetime.strptime(req['day'], '%d.%m.%Y')

    day = Day(day=day,
              comment=req['comment'],
              observers=req['observers'],
              observatory_id=observatory_id)

    addDay(day)
    dayId = getDayId(day.day, day.observatory_id)

    day = getDay(dayId)
    obsId = day.observatory_id

    for obsperiod in req['obsperiods']:
        locId = getLocationId(req['location'], obsId)

        obsp = Observationperiod(
            start_time=datetime.strptime(obsperiod['startTime'], '%H:%M'),
            end_time=datetime.strptime(obsperiod['endTime'], '%H:%M'),
            type_id=getTypeIdByName(req['type']),
            location_id=locId,
            day_id=dayId)
        db.session().add(obsp)

        obspId = getObsPerId(obsp.start_time, obsp.end_time, obsp.location_id,
                             obsp.day_id)

        for observation in obsperiod['observations']:
            shorthand = Shorthand(shorthandrow=observation['shorthandrow'],
                                  observationperiod_id=obspId)
            db.session().add(shorthand)

            shorthand_id = Shorthand.query.filter_by(
                shorthandrow=observation['shorthandrow'],
                observationperiod_id=obspId).first().id

            birdCount = observation['adultUnknownCount'] + observation[
                'adultFemaleCount'] + observation['adultMaleCount'] + observation[
                    'juvenileUnknownCount'] + observation[
                        'juvenileFemaleCount'] + observation[
                            'juvenileMaleCount'] + observation[
                                'subadultUnknownCount'] + observation[
                                    'subadultFemaleCount'] + observation[
                                        'subadultMaleCount'] + observation[
                                            'unknownUnknownCount'] + observation[
                                                'unknownFemaleCount'] + observation[
                                                    'unknownMaleCount']

            observation = Observation(
                species=observation['species'],
                adultUnknownCount=observation['adultUnknownCount'],
                adultFemaleCount=observation['adultFemaleCount'],
                adultMaleCount=observation['adultMaleCount'],
                juvenileUnknownCount=observation['juvenileUnknownCount'],
                juvenileFemaleCount=observation['juvenileFemaleCount'],
                juvenileMaleCount=observation['juvenileMaleCount'],
                subadultUnknownCount=observation['subadultUnknownCount'],
                subadultFemaleCount=observation['subadultFemaleCount'],
                subadultMaleCount=observation['subadultMaleCount'],
                unknownUnknownCount=observation['unknownUnknownCount'],
                unknownFemaleCount=observation['unknownFemaleCount'],
                unknownMaleCount=observation['unknownMaleCount'],
                total_count=birdCount,
                direction=observation['direction'],
                bypassSide=observation['bypassSide'],
                notes=observation['notes'],
                observationperiod_id=obspId,
                shorthand_id=shorthand_id)

            db.session().add(observation)

    db.session().commit()

    return jsonify(req)
Пример #18
0
def setObsPerDayId(day_id_old, day_id_new):
    obsp = Observationperiod.query.filter_by(day_id=day_id_old).all()
    for obs in obsp:
        obs.day_id = day_id_new
        db.session().commit()
Пример #19
0
def createLocation(name, id):
    location = Location.query.filter_by(name=name, observatory_id=id).first()
    if not location:
        location = Location(name=name, observatory_id=id)
        db.session().add(location)
        db.session().commit()