def course_group_create(course_theme_id, course_number_id): course_theme = CourseTheme.query.get(course_theme_id) if not course_theme: return redirect( url_for('bp_web.course_theme_edit', course_theme_id=course_theme_id)) course_number = course_theme.course_number_lazy.filter_by( id=course_number_id).first() if not course_number: return redirect( url_for('bp_web.course_theme_edit', course_theme_id=course_theme_id)) course_group = CourseGroup() data = parser.parse(course_group_create_post, request) if data: for item in data.items(): if item[0] == 'gid': course_group.gid = int(item[1]) course_group.course_number = course_number session.add(course_group) session.commit() return redirect( url_for('bp_web.course_number_edit', course_theme_id=course_theme_id, course_number_id=course_number_id))
def subject_create(): teachers = Teacher.query.all() teacher_list = dict() if teachers: teacher_list = [{ 'id': teacher.id, 'fio': teacher.name } for teacher in teachers] if request.method == 'POST': data = parser.parse(subects_create_post, request) subject = Subject() if data: for item in data.items(): if item[0] == 'name': subject.name = item[1] if item[0] == 'desc': subject.desc = item[1] if item[0] == 'teacher_id': teacher = Teacher.query.get(item[1]) if not teacher: return redirect(url_for('bp_web.subjects')) subject.teacher = teacher session.add(subject) session.commit() return redirect(url_for('bp_web.subjects')) return render_template('subjects_edit.html', teacher_list=teacher_list)
def pytest_sessionstart(): mock_users = 150 # Fixing the DB to 150 mock users users = UserFactory.build_batch(mock_users) for user in users: session.add(user) session.commit() print("Test DB initialized")
def handleStoriesCreated(): body = request.get_json() new_story = Story(place_id=body.get("place_id"), user_id=body.get("user_id"), availability=body.get("availability"), num=body.get("num"), price=body.get("price"), validity=body.get("validity")) session.add(new_story) session.flush() return jsonify({'id': new_story.id})
def handlePlaceCreated(): body = request.get_json() new_place = Place( name=body.get("name"), lng=body.get("long"), lat=body.get("lat"), description=body.get("description"), ) session.add(new_place) session.flush() return jsonify({'id': new_place.id})
def handleUserCreated(): body = request.get_json() new_user = User( name=body.get("name"), email=body.get("email"), birthdate=body.get("birthdate"), phone=body.get("phone"), ) session.add(new_user) session.flush() return jsonify({'id': new_user.id})
def course_theme_create(): if request.method == 'POST': data = parser.parse(course_theme_create_post, request) course_theme = CourseTheme() if data: for item in data.items(): if item[0] == 'name': course_theme.name = item[1] session.add(course_theme) session.commit() return redirect(url_for('bp_web.course_themes')) return render_template('course_themes_edit.html')
def teacher_create(): if request.method == 'POST': data = parser.parse(teacher_create_post, request) teacher = Teacher() if data: for item in data.items(): if item[0] == 'name': teacher.name = item[1] if item[0] == 'email': teacher.email = item[1] session.add(teacher) session.commit() return redirect(url_for('bp_web.teachers')) return render_template('teachers_edit.html')
def course_number_create(course_theme_id): course_theme = CourseTheme.query.get(course_theme_id) if not course_theme: return redirect( url_for('bp_web.course_theme_edit', course_theme_id=course_theme_id)) reserved_courses = list() if course_theme.course_number: for course_number in course_theme.course_number: reserved_courses.append(course_number.number) subjects = Subject.query.all() subjects_list = dict() if subjects: subjects_list = [{ 'id': subject.id, 'name': subject.name } for subject in subjects] if request.method == 'POST': data = parser.parse(course_number_create_post, request) course_number = CourseNumber() if data: for item in data.items(): if item[0] == 'number': course_number.number = int(item[1]) if item[0] == 'subjects[]': for subj in item[1]: course_number_subject = Subject.query.get(subj) if course_number_subject: course_number.subjects.append( course_number_subject) course_number.course_theme = course_theme session.add(course_number) session.commit() return redirect( url_for('bp_web.course_theme_edit', course_theme_id=course_theme_id)) return render_template('course_numbers_edit.html', reserved_courses=reserved_courses, subjects_list=subjects_list)
def send_welcome(message): user = User.query.filter_by(tid=message.from_user.id).first() if not user: user = User(tid=message.from_user.id, is_admin=False) session.add(user) session.commit() course_themes = CourseTheme.query.all() markup = telebot.types.InlineKeyboardMarkup(row_width=6) for ct in course_themes: markup.row( telebot.types.InlineKeyboardButton(text=ct.name, callback_data=':'.join( ['get_cn', str(ct.id)]))) tbot.send_message(chat_id=message.from_user.id, text='\U0001F680 Выберите Ваше направление подготовки', reply_markup=markup)
def class_schedule_edit(): data = request.form.to_dict() if data: if data.get('course_group_id'): course_group_id = data.pop('course_group_id') course_group = CourseGroup.query.get(course_group_id) if course_group: parsed_data = dict() for key, value in data.items(): if value: keys = key.split('_') if not keys[0] + keys[1] in parsed_data.keys(): parsed_data[keys[0] + keys[1]] = dict() parsed_data[keys[0] + keys[1]]['dow'] = keys[0] parsed_data[keys[0] + keys[1]]['seq'] = keys[1] parsed_data[keys[0] + keys[1]][keys[2]] = value class_schedules = course_group.class_schedule.all() if class_schedules: for class_schedule in class_schedules: session.delete(class_schedule) for row in parsed_data.values(): if row['subj']: subj = Subject.query.get(row['subj']) if subj: class_lesson = ClassSchedule() class_lesson.subject = subj class_lesson.course_group = course_group for item in row.items(): if item[0] == 'class': class_lesson.classroom = item[1] if item[0] == 'seq': class_lesson.seq = int(item[1]) if item[0] == 'dow': class_lesson.dow = item[1] session.add(class_lesson) session.commit() return redirect(url_for('bp_web.class_schedule'))
def id(): req = requests.get(KAWAL_COVID) data = req.json() updated = parser.parse(data['metadata']['lastUpdatedAt']) \ .replace(tzinfo=None) alldata = session.query(Status) \ .filter(Status.country_id == "id") \ .order_by(Status.created.desc()).all() dbDate = "" if len(alldata) > 0: getData = [_id_beauty(data, row) for row in alldata] dbDate = parser.parse(getData[0]["metadata"]["last_updated"]) \ .replace(tzinfo=None) if not updated == dbDate: new_status = Status(confirmed=data['confirmed']['value'], deaths=data['deaths']['value'], recovered=data['recovered']['value'], active_care=data['activeCare']['value'], country_id="id", created=updated, updated=updated) session.add(new_status) for index, row in enumerate(getData): if not row['confirmed']['diff'] == 0 and \ not row['deaths']['diff'] == 0 and \ not row['recovered']['diff'] == 0 and \ not row['active_care']['diff'] == 0: row['metadata']['last_updated'] = \ getData[index-1]['metadata']['last_updated'] return _response(row, 200) return _response(getData[0], 200) else: new_status = Status(confirmed=data['confirmed']['value'], deaths=data['deaths']['value'], recovered=data['recovered']['value'], active_care=data['activeCare']['value'], country_id="id", created=updated, updated=updated) session.add(new_status) return _response(_id_beauty(data, 0), 200)
def get_schedule_file(msg): person = session.query(Person).filter( func.lower(Person.fullname) == func.lower(msg.text)).first() if not person: return tb.send_message( msg.chat.id, f"Такого ПІБ немає у базі, зв'яжіться з [адміністратором](https://t.me/Regis322)", parse_mode='Markdown') if person.telegram_id: return tb.send_message( msg.chat.id, "Людина за цим ПІБ вже зареэстрована, зв'яжіться з [адміністратором](https://t.me/Regis322)", parse_mode='Markdown') person.telegram_id = msg.chat.id session.add(person) session.commit() tb.send_message(msg.chat.id, "Ваш ПІБ знайдено у базі, ваш телеграм під'єднано")
def id(): req = requests.get("https://kawalcovid19.harippe.id/api/summary") data = req.json() updated = parser.parse(data['metadata']['lastUpdatedAt']) \ .replace(tzinfo=None) alldata = session.query(Status).order_by(Status.id.desc()).all() dbDate = "" if len(alldata) > 0: getData = [_id_beauty(data, row) for row in alldata] dbDate = parser.parse(getData[0]["metadata"]["last_updated"]) \ .replace(tzinfo=None) if not updated == dbDate: new_status = Status(confirmed=data['confirmed']['value'], deaths=data['deaths']['value'], recovered=data['recovered']['value'], active_care=data['activeCare']['value'], country_id="id", created=updated, updated=updated) session.add(new_status) for row in getData: if not row['confirmed']['diff'] == 0 and \ not row['deaths']['diff'] == 0 and \ not row['recovered']['diff'] == 0 and \ not row['active_care']['diff'] == 0: return jsonify(row), 200 return jsonify(getData[0]), 200 else: new_status = Status(confirmed=data['confirmed']['value'], deaths=data['deaths']['value'], recovered=data['recovered']['value'], active_care=data['activeCare']['value'], country_id="id", created=updated, updated=updated) session.add(new_status) return jsonify(_id_beauty(data, 0)), 200
def post(self): parsed_args = parser.parse_args() box = Box(**parsed_args) session.add(box) session.commit() return box, 201
def _odi_api(state): req = requests.get(ODI_API) if not req.status_code == 200: jsonify({"message": f"Error when trying to crawl {ODI_API}"}), 404 prov = {prov["provinsi"]: prov for prov in req.json()["data"]} hasil = prov[DAERAH[state]] todayIsNone = True result = _default_resp() result['metadata'] = { "source": "https://indonesia-covid-19.mathdro.id/", "province": DAERAH[state].upper() } get_state = session.query(Status) \ .filter(Status.country_id == f"id.{state}") \ .order_by(Status.created.desc()) \ .all() if len(get_state) > 0: for row in get_state: if not row.created.date() == datetime.utcnow().date(): result["total_sembuh"]["diff"] = \ hasil["kasusSemb"] - row.recovered result["total_positif"]["diff"] = \ hasil["kasusPosi"] - row.confirmed result["total_meninggal"]["diff"] = \ hasil["kasusMeni"] - row.deaths result["metadata"]["diff_date"] = \ row.created.isoformat() result["metadata"]["source_date"] = \ datetime.utcnow().isoformat() break else: todayIsNone = False result["metadata"]["source_date"] = \ row.created.isoformat() if todayIsNone: new_status = Status(confirmed=hasil["kasusPosi"], deaths=hasil["kasusMeni"], recovered=hasil["kasusSemb"], active_care=0, country_id=f"id.{state}", created=datetime.utcnow(), updated=datetime.utcnow()) session.add(new_status) result["metadata"]["source_date"] = \ datetime.utcnow().isoformat() result["total_sembuh"]["value"] = hasil["kasusSemb"] result["total_positif"]["value"] = hasil["kasusPosi"] result["total_meninggal"]["value"] = hasil["kasusMeni"] if len(result) == 0: jsonify({"message": "Not Found"}), 404 if is_bot(): return jsonify(message=bot.province(result)), 200 else: return jsonify(result), 200
def post(self): parsed_args = parser.parse_args() address = Address(**parsed_args) session.add(address) session.commit() return address, 201
def save(self): try: session.add(self) session.commit() except Exception as e: session.rollback();
def post(self): parsed_args = parser.parse_args() content = Address(**parsed_args) session.add(content) session.commit() return content, 201
def odi_api(state): req = requests.get(ODI_API) if not req.status_code == 200: return [] prov = {prov["provinsi"]: prov for prov in req.json()["data"]} hasil = prov[DAERAH[state]] todayIsNone = True result = { "tanggal": { "value": "" }, "total_sembuh": { "value": 0, "diff": 0 }, "total_positif": { "value": 0, "diff": 0 }, "total_meninggal": { "value": 0, "diff": 0 }, "proses_pemantauan": { "value": 0 }, "proses_pengawasan": { "value": 0 }, "selesai_pemantauan": { "value": 0 }, "selesai_pengawasan": { "value": 0 }, "total_odp": { "value": 0 }, "total_pdp": { "value": 0 }, "source": { "value": "" } } result['metadata'] = { "source": "https://indonesia-covid-19.mathdro.id/", "province": DAERAH[state].upper() } get_state = session.query(Status) \ .filter(Status.country_id == f"id.{state}") \ .order_by(Status.created.desc()) \ .all() if len(get_state) > 0: for row in get_state: if not row.created.date() == datetime.utcnow().date(): result["total_sembuh"]["diff"] = \ hasil["kasusSemb"] - row.recovered result["total_positif"]["diff"] = \ hasil["kasusPosi"] - row.confirmed result["total_meninggal"]["diff"] = \ hasil["kasusMeni"] - row.deaths result["metadata"]["diff_date"] = \ row.created.isoformat() result["metadata"]["source_date"] = \ datetime.utcnow().isoformat() break else: todayIsNone = False result["metadata"]["source_date"] = \ row.created.isoformat() if todayIsNone: new_status = Status(confirmed=hasil["kasusPosi"], deaths=hasil["kasusMeni"], recovered=hasil["kasusSemb"], active_care=0, country_id=f"id.{state}", created=datetime.utcnow(), updated=datetime.utcnow()) session.add(new_status) result["metadata"]["source_date"] = \ datetime.utcnow().isoformat() result["total_sembuh"]["value"] = hasil["kasusSemb"] result["total_positif"]["value"] = hasil["kasusPosi"] result["total_meninggal"]["value"] = hasil["kasusMeni"] return result
def init_database(): engine = create_engine(DB_URI) Base.metadata.drop_all(engine) Base.metadata.create_all(engine) # create 10 initial boxes for x in range(0, 10): # create some shoes as demo content box_content_1 = Content(name='Nike Air Zoom Pegasus 35', style='Sneaker', color='white', size='US 9', price='85.00 $', condition='new') box_content_2 = Content(name='Nike Air Max 270', style='Sneaker', color='black', size='US 9', price='85.00 $', condition='new') box_contents = [box_content_1, box_content_2] # create 10 current addresses with a rising value at the end new_current_address = Address( name='Buffer Location 221' + str(x), str_name='Haven Avenue', str_no='3645', city='Menlo Park', post_code='94025', state='California', country='United States of America', ) session.add(new_current_address) # create 10 destination addresses with a rising value at the end new_destination_address = Address( name='Paul Happy', str_name='Target road', str_no='42' + str(x), city='Happyplace', post_code='94025', state='California', country='Germany', ) session.add(new_destination_address) # create 10 boxes with a current address, a destination address and a content new_box = Box(id=10100 + x, name='new box ' + str(x), addr_c=new_current_address, addr_d=new_destination_address, box_contents=box_contents, status='Delivery in Progress', customerStatus='Delivered', weight='2kg', size='M') session.add(new_box) session.commit()