def addlocation(): if not session.get('username'): return redirect(url_for('login')) if session.get('designation') != "Administrator": return resirect(url_for('page_not_found')) form = AddLocationForm() if form.validate_on_submit(): locationID = Location.objects.count() locationID += 1 title = form.title.data IPaddress = form.IPaddress.data category = form.category.data description = form.description.data location = Location(locationID=locationID, title=title, IPaddress=IPaddress, category=category, description=description) location.save() flash("Location added successfully!", "success") return redirect(url_for('index')) return render_template("addLocation.html", title="ADD LOCATION", form=form, addLocation=True)
def setUp(self): with transaction.atomic(): location = Location(name='Centrum Informatyki', street='Kawiory', local_number='5', city='Krakow') location.save() lecture = Lecture(hash='3j7t950', title='How to IT', start_time=timezone.now(), end_time=timezone.now() + timezone.timedelta(hours=2), location=location) lecture.save()
def add_location(): try: name = request.json.get('name') latitude = request.json.get('latitude') longtitude = request.json.get('longtitude') # jwttoken = request.headers.get('Authorization').split(' ')[1] # user = jwt_auth.get_user_from_token(jwttoken) if not name: raise Exception('name cannot be empty') if not latitude: raise Exception('latitude cannot be empty') if not longtitude: raise Exception('longtitude cannot be empty') location_object = Location(name=name, latitude=latitude, longtitude=longtitude) db.session.add(location_object) db.session.commit() return jsonify(dict(success=True, code=201)) except Exception as e: db.session.rollback() return jsonify(dict(success=False, message=str(e), code=400))
def specific_location(idx=None): if not session.get('username'): return redirect(url_for('login')) if (idx == None): return redirect(url_for('page_not_found')) location = Location.objects(locationID=int(idx)).first() #print(location) return render_template("location.html", title=location.title, ip=location.IPaddress, category=location.category)
def locate(name): data = False static_data = { "GOOGLE_API": app.config["GOOGLE_API"], "W3W_API": app.config["W3W_API"], "url_valid": True } # Ensure track ID has been issued exists = db.session.query( Track.name).filter_by(name=name).scalar() is not None if not exists: static_data["url_valid"] = False else: # Ensure track ID has not expired yet track_time = db.session.query( Track.create_time).filter_by(name=name).scalar() track_time_db = date_parser.parse(track_time.strftime('%c')) current_time = dt.utcnow() difference = current_time - track_time_db if difference.days >= 3: static_data["url_valid"] = False # Recieve track data from client if request.method == "POST": # Parse position object return data = request.get_json(force=True) data["timeStamp"] = date_parser.parse( data["timeStamp"].split("GMT")[0]) # Insert extra info about request data["ip"] = request.remote_addr data["track_id"] = db.session.query(Track.id).filter_by(name=name) geocoder = what3words.Geocoder(app.config["W3W_API"]) w3w = geocoder.convert_to_3wa( what3words.Coordinates(data["latitude"], data["longitude"])) data["w3w"] = w3w["words"] # Add message to user location_insert = Location(**data) try: db.session.add(location_insert) db.session.commit() except Exception as e: print(e) sys.stdout.flush() return render_template("locate.html", title='Locate', static_data=static_data, data=data) return render_template("locate.html", title='Locate', static_data=static_data, data=data)
def edit(): room_id = request.form.get('room_id') room_name = request.form.get('room_name') room_material = request.form.get('room_material') character_id = 1 if room_id: if Room.object(room_id=room_id, character_id=character_id): flash(f"Already roomed {character_name}") else: Location(character_id=character_id, room_id=room_id) flash(f"You have roomed {character_name}") rooms = list( Character.objects.aggregate(*[{ '$lookup': { 'from': 'location', 'localField': 'character_id', 'foreignField': 'character_id', 'as': 'r1' } }, { '$unwind': { 'path': '$r1', 'includeArrayIndex': 'r1.character_id', 'preserveNullAndEmptyArrays': False } }, { '$lookup': { 'from': 'room', 'localField': 'r1.character_id', 'foreignField': 'character_id', 'as': 'r2' } }, { '$unwind': { 'path': '$r2', 'preserveNullAndEmptyArrays': False } }])) return render_template("edit.html", data=rooms, title="Rooms")
def interest(): form = InterestForm() if form.validate_on_submit(): locationData = Location(l_name=form.l_name.data, time=form.time.data) db.session.add(locationData) db.session.commit() l_id = Location.query.filter_by(l_id=locationData.l_id).first() hobbyData = Hobby(name=form.name.data, h_name=form.h_name.data, email=form.email.data, plans=l_id) db.session.add(hobbyData) db.session.commit() return redirect(url_for('plan')) else: print(form.errors) return render_template('interest.html', title='Interests', form=form)
def setUp(self): """ Will be called before every test """ # ensure there is no data in the test database when the test starts db.session.commit() db.drop_all() db.create_all() # register a plan locationData = Location(l_name="Spain", time="June") db.session.add(locationData) db.session.commit() l_id = Location.query.filter_by(l_id=locationData.l_id).first() hobbyData = Hobby(name="Jane", h_name="Hiking", email="*****@*****.**", plans=l_id) # save plan to database db.session.add(hobbyData) db.session.commit()
def make_location(self, data, **kwargs): return Location(**data)
def create_activity(plannerid): try: jwttoken = request.headers.get('Authorization').split(' ')[1] user = jwt_auth.get_user_from_token(jwttoken) desiredplanner = Planner.query.filter_by(id=plannerid).one() if user.id != desiredplanner.user_id: raise Exception('access denied') activity_name = request.json.get('activity_name') start_date = request.json.get('start_date') start_time = request.json.get('start_time') end_date = request.json.get('end_date') end_time = request.json.get('end_time') description = request.json.get('description') atype = request.json.get('type') if not activity_name: raise Exception('activity_name cannot be empty') if not start_date: raise Exception('start_date cannot be empty') if not start_time: raise Exception('start_time cannot be empty') if not end_date: raise Exception('end_date cannot be empty') if not end_time: raise Exception('end_time cannot be empty') if not description: raise Exception('description cannot be empty') start_datetime = start_date + ' ' + start_time end_datetime = end_date + ' ' + end_time if atype == 1: start = request.json.get('start') stop = request.json.get('stop') if (start['name'] == "" or start['lat'] == "" or start['lng'] == ""): raise Exception( 'Start location name, latitude or longtitude is missing') if (stop['name'] == "" or stop['lat'] == "" or stop['lng'] == ""): raise Exception( 'Stop location name, latitude or longtitude is missing') start_object = Location(name=start['name'], latitude=str(start['lat']), longtitude=str(start['lng'])) stop_object = Location(name=stop['name'], latitude=str(stop['lat']), longtitude=str(stop['lng'])) db.session.add(start_object) db.session.add(stop_object) db.session.commit() activity_object_stop = Activity( name=activity_name + " (end)", start=dt.datetime.strptime(end_datetime, '%Y-%m-%d %H:%M'), end=dt.datetime.strptime(end_datetime, '%Y-%m-%d %H:%M'), description=description, planner_ID=int(plannerid), serviceType_ID=int(atype), location_ID=stop_object.id) db.session.add(activity_object_stop) db.session.commit() activity_object_start = Activity(name=activity_name+" (start)", start=dt.datetime.strptime(start_datetime, '%Y-%m-%d %H:%M'), end=dt.datetime.strptime(start_datetime, '%Y-%m-%d %H:%M'), description=description, planner_ID=int(plannerid), serviceType_ID=int(atype),location_ID=start_object.id\ , ref=activity_object_stop.id ) db.session.add(activity_object_start) db.session.commit() return jsonify(dict(success=True, code=201)) else: inl = request.json.get('in') if (inl['name'] == "" or inl['lat'] == "" or inl['lng'] == ""): raise Exception( 'Location name, latitude or longtitude is missing') in_object = Location(name=inl['name'], latitude=str(inl['lat']), longtitude=str(inl['lng'])) db.session.add(in_object) db.session.commit() activity_object_in = Activity( name=activity_name, start=dt.datetime.strptime(start_datetime, '%Y-%m-%d %H:%M'), end=dt.datetime.strptime(end_datetime, '%Y-%m-%d %H:%M'), description=description, planner_ID=int(plannerid), serviceType_ID=int(atype), location_ID=in_object.id) db.session.add(activity_object_in) db.session.commit() return jsonify(dict(success=True, code=201)) except Exception as e: db.session.rollback() return jsonify(dict(success=False, message=str(e), code=400))