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})
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()
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))
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)
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()
def get_db(): try: db = session() yield db finally: db.close()
def addObservation(observation): db.session().add(observation) db.session().commit()
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)
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()
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()