Exemple #1
0
async def remove_group_if_empty(group_id: str):
    try:
        group = Group.get_by_id(group_id)
    except Group.DoesNotExist:
        return

    if Shape.filter(group=group_id).count() == 0:
        group.delete_instance(True)
Exemple #2
0
async def create_group(sid: str, group_info: ServerGroup):
    pr: PlayerRoom = game_state.get(sid)

    try:
        Group.get_by_id(group_info["uuid"])
        logger.exception(f"Group with {group_info['uuid']} already exists")
        return
    except Group.DoesNotExist:
        Group.create(**group_info)

    for psid, _ in game_state.get_users(room=pr.room):
        await sio.emit(
            "Group.Create",
            group_info,
            room=psid,
            skip_sid=sid,
            namespace=GAME_NS,
        )
Exemple #3
0
 def post(self):
     # TODO: sanity test
     group = self.request.get('group')
     vendor = self.request.get('vendor')
     event = Event(group = Group.get_by_id(long(group)),
                   vendor = Vendor.get_by_id(long(vendor)),
                   advocate = users.get_current_user())
     
     event.put()
     self.redirect('/u/mine/profile')
Exemple #4
0
async def get_group_info(sid: str, group_id: str):
    try:
        group = Group.get_by_id(group_id)
    except Group.DoesNotExist:
        logger.exception(
            f"Could not retrieve group information for {group_id}")
        data = {}
    else:
        data = model_to_dict(group)

    await sio.emit("Group.Info", data=data, room=sid, namespace=GAME_NS)
Exemple #5
0
def get_fees(group_id=None):
    """
    please notice, there's a different function in helpers.py
    with the same name.
    """
    fee_query = db.Query(Fee)
    if group_id:
        group = Group.get_by_id(group_id)
        fee_query.filter("group =", group)
    fee_query.order('-date')
    fees = fee_query.fetch(20)
    return fees
Exemple #6
0
async def update_group(sid: str, group_info: ServerGroup):
    pr: PlayerRoom = game_state.get(sid)

    try:
        group = Group.get_by_id(group_info["uuid"])
    except Group.DoesNotExist:
        logger.exception(
            f"Could not retrieve group information for {group_info['uuid']}")
    else:
        update_model_from_dict(group, group_info)
        group.save()

    for psid, _ in game_state.get_users(room=pr.room):
        await sio.emit(
            "Group.Update",
            group_info,
            room=psid,
            skip_sid=sid,
            namespace=GAME_NS,
        )
Exemple #7
0
  def post(self):
    data = UserForm(data=self.request.POST)

    logging.info(self.request.POST)
    
    if not data.is_valid():
      self.redirect('/u/register')
    else:
      user = data.save(commit=False)

      if not exists_by_property(User, 'name', user.name):
        user.who = users.get_current_user()
        user.put()
        for group in self.request.POST.getall('group'):
          user.join(Group.get_by_id(group))
        self.redirect('/u/%s/profile' % user.name)
      else:
        logging.debug('user %s already exists!' % user.name)
        self.generate('add_user.html',
                      {'form':data,
                       'groups':Group.all()})
Exemple #8
0
def get_group(id):
    try:
        return Group.get_by_id(int(id))
    except:
        return None
Exemple #9
0
def admin_update(what, id):
    if what == 'specialty':
        form = SpecialtyForm()
        tmp = Specialty.get_by_id(id)
        if form.validate_on_submit():
            tmp.long_form = form.long_form.data
            tmp.short_form = form.short_form.data
            Specialty.update(tmp)
            flash(u'Спеціальність успішно оновлено!')
            return redirect_back('admin_specialty')
        elif request.method == 'POST':
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
        else:
            form.long_form.data = tmp.long_form
            form.short_form.data = tmp.short_form
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
    if what == 'subject':
        form = SubjectForm()
        tmp = Subject.get_by_id(id)
        if form.validate_on_submit():
            tmp.title = form.title.data
            Subject.update(tmp)
            flash(u'Предмет успішно оновлено!')
            return redirect_back('admin_subject')
        elif request.method == 'POST':
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
        else:
            form.title.data = tmp.title
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
    if what == 'group':
        form = GroupForm()
        form.group_specialty.choices = [(h.id, h.long_form) for h in Specialty.get_all()]
        tmp = Group.get_by_id(id)
        if form.validate_on_submit():
            tmp.group_number = form.group_number.data
            tmp.group_course = form.group_course.data
            tmp.specialty_id = form.group_specialty.data
            Group.update(tmp)
            flash(u'Групу упішно оновлено!')
            return redirect_back('admin_group')
        elif request.method == 'POST':
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
        else:
            form.group_number.data = tmp.group_number
            form.group_course.data = tmp.group_course
            form.group_specialty.data = tmp.specialty_id
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
    if what == 'lecturer':
        form = LecturerForm()
        form.lessons.choices = [(h.id, h.title) for h in Subject.get_all()]
        tmp = Lecturer.get_by_id(id)

        if form.validate_on_submit():
            tmp.first_name = form.first_name.data
            tmp.middle_name = form.middle_name.data
            tmp.last_name = form.last_name.data
            Lecturer.update(tmp)
            Lessons.add(id, form.lessons.data)
            flash(u'Дані викладача успішно оновлено!')
            return redirect_back('admin_lecturer')
        elif request.method == 'POST':
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
        else:
            form.lessons.data = [h.id for h in tmp.subjects]
            form.first_name.data = tmp.first_name
            form.middle_name.data = tmp.middle_name
            form.last_name.data = tmp.last_name
            next = get_redirect_target()
            return render_template('admin_update.html', form=form, type=what, id=id, next=next)
Exemple #10
0
def admin_timetable():
    form = TimeTable()
    all_groups = Group.get_all()
    choises = []
    courses = [u'Перший курс', u'Другий курс', u'Третій курс', u'Четвертий', u'Бакалаврат']
    index = 1
    for j in courses:
        tmp = [j]
        tmp.append([(h.id, unicode(h.group_number) + '-' + h.specialty.short_form) for h in all_groups if
                    h.group_course == index])
        choises.append(tmp)
        index += 1
    form.group.choices = choises
    edit = EditForm()

    if form.validate_on_submit():
        group = form.group.data
        day = form.day.data
        item = None
        if group or group != 'None':
            item = Group.get_by_id(group)
        if day or day != 'None':
            item_day = getattr(item, day)
            if item_day != []:
                for i in item_day:
                    if i.week == 1:
                        if i.subject_one:
                            edit.one_lesson_one.data = i.subject_one.subject_id
                            edit.one_lesson_one_lecturer.data = i.subject_one.lecturer_id
                        if i.subject_two:
                            edit.one_lesson_two.data = i.subject_two.subject_id
                            edit.one_lesson_two_lecturer.data = i.subject_two.lecturer_id
                        if i.subject_three:
                            edit.one_lesson_three.data = i.subject_three.subject_id
                            edit.one_lesson_three_lecturer.data = i.subject_three.lecturer_id
                        if i.subject_four:
                            edit.one_lesson_four.data = i.subject_four.subject_id
                            edit.one_lesson_four_lecturer.data = i.subject_four.lecturer_id
                        if i.subject_five:
                            edit.one_lesson_five.data = i.subject_five.subject_id
                            edit.one_lesson_five_lecturer.data = i.subject_five.lecturer_id
                        if i.subject_six:
                            edit.one_lesson_six.data = i.subject_six.subject_id
                            edit.one_lesson_six_lecturer.data = i.subject_six.lecturer_id
                    if i.week == 2:
                        if i.subject_one:
                            edit.two_lesson_one.data = i.subject_one.subject_id
                            edit.two_lesson_one_lecturer.data = i.subject_one.lecturer_id
                        if i.subject_two:
                            edit.two_lesson_two.data = i.subject_two.subject_id
                            edit.two_lesson_two_lecturer.data = i.subject_two.lecturer_id
                        if i.subject_three:
                            edit.two_lesson_three.data = i.subject_three.subject_id
                            edit.two_lesson_three_lecturer.data = i.subject_three.lecturer_id
                        if i.subject_four:
                            edit.two_lesson_four.data = i.subject_four.subject_id
                            edit.two_lesson_four_lecturer.data = i.subject_four.lecturer_id
                        if i.subject_five:
                            edit.two_lesson_five.data = i.subject_five.subject_id
                            edit.two_lesson_five_lecturer.data = i.subject_five.lecturer_id
                        if i.subject_six:
                            edit.two_lesson_six.data = i.subject_six.subject_id
                            edit.two_lesson_six_lecturer.data = i.subject_six.lecturer_id
            return render_template('admin_timetable.html', form=form, edit=edit)
    elif request.method == 'POST' and edit.data:
        day = None
        group = None
        try:
            day = request.args.get('day')
            group = int(request.args.get('group'))
        except ValueError:
            pass
        if group != None and day != None:
            lessons = globals().get(day.capitalize()).get_by_group(group)
            while len(lessons) < 2:
                lessons.append(globals().get(day.capitalize())(week=len(lessons) + 1, group_id=group))
            for item in lessons:
                for i in range(1, 7):
                    if item.week == 1:
                        setattr(item, 'lesson_' + num2words(i), Lessons.get_id(
                            getattr(edit, unicode(num2words(1)) + '_lesson_' + unicode(num2words(i))).data,
                            getattr(edit, unicode(num2words(1)) + '_lesson_' + unicode(num2words(i)) + unicode(
                                '_lecturer')).data))
                    if item.week == 2:
                        setattr(item, 'lesson_' + num2words(i), Lessons.get_id(
                            getattr(edit, unicode(num2words(2)) + '_lesson_' + unicode(num2words(i))).data,
                            getattr(edit, unicode(num2words(2)) + '_lesson_' + unicode(num2words(i)) + unicode(
                                '_lecturer')).data))
                    globals().get(day.capitalize()).update(item)
            flash(u'Розклад успішно оновлено')
            form.day.errors = None
            form.group.errors = None
        return render_template('admin_timetable.html', form=form)
    else:
        return render_template('admin_timetable.html', form=form)
Exemple #11
0
def groups_id_device_route(group_id):
    user_id = get_jwt_identity()
    group = Group.get_by_id(group_id, user_id)
    group.init_devices()

    return jsonify(groups=[group])
Exemple #12
0
def groups_id_route(group_id):
    user_id = get_jwt_identity()
    group = Group.get_by_id(group_id, user_id)

    return jsonify(groups=[group])
Exemple #13
0
 def post(self, user_id):
   user = User.get_current_user()
   for group in self.request.POST.getall('group'):
     user.join(Group.get_by_id(long(group)))
   self.redirect('/u/%s/profile' % user.name)