Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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")
Ejemplo n.º 4
0
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})
Ejemplo n.º 5
0
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})
Ejemplo n.º 6
0
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})
Ejemplo n.º 7
0
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')
Ejemplo n.º 8
0
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')
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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'))
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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,
                    "Ваш ПІБ знайдено у базі, ваш телеграм під'єднано")
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
 def post(self):
     parsed_args = parser.parse_args()
     box = Box(**parsed_args)
     session.add(box)
     session.commit()
     return box, 201
Ejemplo n.º 16
0
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
Ejemplo n.º 17
0
 def post(self):
     parsed_args = parser.parse_args()
     address = Address(**parsed_args)
     session.add(address)
     session.commit()
     return address, 201
Ejemplo n.º 18
0
 def save(self):
     try:
         session.add(self)
         session.commit()
     except Exception as e:
         session.rollback();
Ejemplo n.º 19
0
 def post(self):
     parsed_args = parser.parse_args()
     content = Address(**parsed_args)
     session.add(content)
     session.commit()
     return content, 201
Ejemplo n.º 20
0
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
Ejemplo n.º 21
0
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()