def edit_schedule(schedule_id): schedule = Schedule.query.get_or_404(schedule_id) form = ScheduleForm(request.form, obj=schedule) form.subject.choices = [(s.id, s.name) for s in Subject.query.all()] form.room.choices = [(r.id, r.name) for r in Room.query.all()] form.teacher.choices = [(t.id, t.name) for t in Teacher.query.all()] form.day.choices = [(d, d) for d in business_days] if form.validate_on_submit(): # schedule.school_class_id = form.school_class.data, schedule.day = form.day.data, schedule.start_time = form.start_time.data, schedule.end_time = form.end_time.data, schedule.teacher_id = form.teacher.data, schedule.subject_id = form.subject.data, schedule.room_id = form.room.data db.session.add(schedule) db.session.commit() flash(u'Расписание успешно обновлено', 'success') return redirect('/schedules/') return render_template('edit_schedule.html', form=form)
def home(): form = ScheduleForm() checkValidation = form.validate_on_submit() if checkValidation: flash( f'Schedule will be made for {form.class1.data}, {form.class2.data}, {form.class3.data}', 'success') classes = [] classes.append(form.class1.data) classes.append(form.class2.data) classes.append(form.class3.data) classes.append(form.class4.data) classes.append(form.class5.data) classes.append(form.class6.data) classes.append(form.class7.data) sched = makeSchedule() schedList = sched.create_schedule(classes) print(schedList) print(classes) length = len(schedList) return render_template('schedule.html', title='Schedule Maker - Schedule', schedules=schedList, length=length) print(form.errors) print(checkValidation) return render_template('home.html', title='Schedule Maker - Home', form=form)
def get(self, request, tourney_uuid): tourney = Tournament.objects.get(uuid=tourney_uuid) # Make sure that the user has admin rights for this tourney. if not tourney.is_user_admin(request.user): return HttpResponseForbidden( "Only the tournament administrator can do that.") if not tourney.is_open: return HttpResponseForbidden("This tournament is closed.") schedule_form = ScheduleForm(request.GET) if schedule_form.is_valid(): json_response = DatabaseSchedule().get(self.request).content games = json.loads(json_response) else: games = None add_prop_form = PropositionForm(initial={"tournament": tourney.id}) game_schedule_form = GameScheduleForm() GameDatabaseFormset = formset_factory(GameDatabaseForm, extra=0) if games: formset = GameDatabaseFormset(initial=games["games"]) else: formset = None game_seasons = GameSeason.objects.all() return render( self.request, self.template_name, { "tourney": tourney, "now": datetime.datetime.now(), "add_prop_form": add_prop_form, "user_is_admin": True, "game_seasons": game_seasons, "game_schedule_form": game_schedule_form, "games": games, "formset": formset })
def add_schedule(): form = ScheduleForm() form.subject.choices = [(s.id, s.name) for s in Subject.query.all()] form.room.choices = [(r.id, r.name) for r in Room.query.all()] form.teacher.choices = [(t.id, t.name) for t in Teacher.query.all()] form.day.choices = [(d, d) for d in business_days] if form.validate_on_submit(): schedule = Schedule( # school_class_id=form.school_class.data, day=form.day.data, start_time=form.start_time.data, end_time=form.end_time.data, teacher_id=form.teacher.data, subject_id=form.subject.data, room_id=form.room.data ) db.session.add(schedule) db.session.commit() flash(u'Новая запись успашно добавлена в расписание', 'success') return redirect('/schedules/add') return render_template('edit_schedule.html', form=form)
def get(self, request, tourney_uuid): tourney = Tournament.objects.get(uuid=tourney_uuid) # Make sure that the user has admin rights for this tourney. if not tourney.is_user_admin(request.user): return HttpResponseForbidden("Only the tournament administrator can do that.") if not tourney.is_open: return HttpResponseForbidden("This tournament is closed.") schedule_form = ScheduleForm(request.GET) if schedule_form.is_valid(): json_response = DatabaseSchedule().get(self.request).content games = json.loads(json_response) else: games = None add_prop_form = PropositionForm(initial={"tournament":tourney.id}) game_schedule_form = GameScheduleForm() GameDatabaseFormset = formset_factory(GameDatabaseForm, extra=0) if games: formset = GameDatabaseFormset(initial=games["games"]) else: formset = None game_seasons = GameSeason.objects.all() return render(self.request, self.template_name, {"tourney": tourney, "now": datetime.datetime.now(), "add_prop_form": add_prop_form, "user_is_admin": True, "game_seasons": game_seasons, "game_schedule_form": game_schedule_form, "games": games, "formset": formset})
def schedule_add(request, module_id): module = check_owner(request, module_id) ActivityScheduleFormSet = formset_factory(ActivityScheduleForm, extra=0) if request.method == 'POST': form = ScheduleForm(request.POST) formset = ActivityScheduleFormSet(request.POST) if form.is_valid() and formset.is_valid(): schedule = Schedule() schedule.module = module schedule.title = form.cleaned_data.get("title").strip() schedule.default = form.cleaned_data.get("default") schedule.created_by = request.user # remvoe any existing default for this schedule if schedule.default: Schedule.objects.filter(module=module).update(default=False) schedule.save() for f in formset: act_sched = ActivitySchedule() start_date = f.cleaned_data.get("start_date") end_date = f.cleaned_data.get("end_date") digest = f.cleaned_data.get("digest") if start_date is not None: act_sched = ActivitySchedule() act_sched.schedule = schedule act_sched.start_date = start_date act_sched.end_date = end_date act_sched.digest = digest.strip() act_sched.save() return HttpResponseRedirect('../saved/') else: activities = Activity.objects.filter(section__module=module) initial = [] section = None start_date = datetime.datetime.now() end_date = datetime.datetime.now() + datetime.timedelta(days=7) for a in activities: if a.section != section: section = a.section start_date = start_date + datetime.timedelta(days=7) end_date = end_date + datetime.timedelta(days=7) data = {} data['title'] = a.title data['digest'] = a.digest data['section'] = a.section.title data['start_date'] = start_date data['end_date'] = end_date initial.append(data) form = ScheduleForm() formset = ActivityScheduleFormSet(initial=initial) return render(request, 'learning_modules/schedule-form.html', { 'form': form, 'formset': formset, 'module': module, })
def schedule_add(request,module_id): module = check_owner(request,module_id) ActivityScheduleFormSet = formset_factory(ActivityScheduleForm, extra=0) if request.method == 'POST': form = ScheduleForm(request.POST) formset = ActivityScheduleFormSet(request.POST) if form.is_valid() and formset.is_valid(): schedule = Schedule() schedule.module = module schedule.title = form.cleaned_data.get("title").strip() schedule.default = form.cleaned_data.get("default") schedule.created_by = request.user # remvoe any existing default for this schedule if schedule.default: Schedule.objects.filter(module=module).update(default=False) schedule.save() for f in formset: act_sched = ActivitySchedule() start_date = f.cleaned_data.get("start_date") end_date = f.cleaned_data.get("end_date") digest = f.cleaned_data.get("digest") if start_date is not None: act_sched = ActivitySchedule() act_sched.schedule = schedule act_sched.start_date = start_date act_sched.end_date = end_date act_sched.digest = digest.strip() act_sched.save() return HttpResponseRedirect('../saved/') else: activities = Activity.objects.filter(section__module = module) initial = [] section = None start_date = datetime.datetime.now() end_date = datetime.datetime.now() + datetime.timedelta(days=7) for a in activities: if a.section != section: section = a.section start_date = start_date + datetime.timedelta(days=7) end_date = end_date + datetime.timedelta(days=7) data = {} data['title'] = a.title data['digest'] = a.digest data['section'] = a.section.title data['start_date'] = start_date data['end_date'] = end_date initial.append(data) form = ScheduleForm() formset = ActivityScheduleFormSet(initial=initial) return render(request, 'learning_modules/schedule-form.html', {'form': form, 'formset': formset,'module':module, })
def get(self, request): form = ScheduleForm(request.GET) if form.is_valid(): game_types = form.get_game_type() _from = form.cleaned_data["start_time"] to = form.cleaned_data["end_time"] combined_query = reduce(operator.or_, [Q(game_type=game_type) for game_type in game_types], Q(game_type="")) games = list(Game.objects.filter(combined_query).filter(start_time__range=(_from, to)).values()) return self.render_to_response({"games": games}) else: return self.render_to_response({"request_error": form.errors, "games": []})
def create(): form = ScheduleForm() if form.validate_on_submit(): Schedule.create(name=form['name'].data , url= form['url'].data , check_interval=form['check_interval'].data) flash('Your actor has been created', 'success') return redirect(url_for('index')) elif form.errors: handle_form_errors(form.errors) return render_template("form.html", form=form)
def addSchedule(): if globals()['cur_user'] == "admin": form = ScheduleForm() if form.validate_on_submit(): email, date, time, examid, slot = form.email.data, form.date.data, form.time.data, form.examid.data, form.slot.data res = AddSchedule(email, date, time, examid, slot) flash(res) return redirect(url_for("addSchedule")) return render_template('add_slot.html', form=form, ddtext='Add Slot') else: flash("Login as admin to add schedule.") return redirect(url_for("login"))
def edit_schedule(request): form = ScheduleForm() if request.method == 'POST': form = ScheduleForm(request.POST) if form.is_valid(): cd = form.cleaned_data request.user.classes = [] if cd.get('new_classes'): for cls_num in cd['new_classes']: request.user.classes.create(period=cd['p_'+str(cls_num)], teacher=cd['teacher_'+str(cls_num)], dif=cd['dif_'+str(cls_num)], subject=cd['subject_'+str(cls_num)]) if cd.get('old_classes'): for cls_num in cd['old_classes']: request.user.classes.add(cd['class_'+str(cls_num)]) return HttpResponseRedirect(reverse('home')) return render_to_response('edit_sched.html', {'form': form}, context_instance=RequestContext(request))
def get(self, request): form = ScheduleForm(request.GET) if form.is_valid(): game_types = form.get_game_type() _from = form.cleaned_data["start_time"] to = form.cleaned_data["end_time"] combined_query = reduce( operator.or_, [Q(game_type=game_type) for game_type in game_types], Q(game_type="")) games = list( Game.objects.filter(combined_query).filter( start_time__range=(_from, to)).values()) return self.render_to_response({"games": games}) else: return self.render_to_response({ "request_error": form.errors, "games": [] })
def edit(id): form = ScheduleForm(obj=Schedule.select().where(Schedule.id == id).get()) if form.validate_on_submit(): if 'active' in request.form: active = 1 else: active = 0 Schedule.update(name=request.form['name'] , url=request.form['url'] , check_interval=request.form['check_interval'] , active=active ).where(Schedule.id == id).execute() flash('Your actor has been updated', 'success') return redirect(url_for('index')) elif form.errors: handle_form_errors(form.errors) return render_template("form.html", form=form)
def edit_schedule(request): form = ScheduleForm() if request.method == 'POST': form = ScheduleForm(request.POST) if form.is_valid(): cd = form.cleaned_data request.user.classes = [] if cd.get('new_classes'): for cls_num in cd['new_classes']: request.user.classes.create( period=cd['p_' + str(cls_num)], teacher=cd['teacher_' + str(cls_num)], dif=cd['dif_' + str(cls_num)], subject=cd['subject_' + str(cls_num)]) if cd.get('old_classes'): for cls_num in cd['old_classes']: request.user.classes.add(cd['class_' + str(cls_num)]) return HttpResponseRedirect(reverse('home')) return render_to_response('edit_sched.html', {'form': form}, context_instance=RequestContext(request))
def fillschedule(request): if request.POST: form = ScheduleForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('update_done.html') else: form = ScheduleForm() args = {} args.update(csrf(request)) args['form'] = form return render_to_response('updateschedule.html', args)
def update(username): """update schedules""" form = ScheduleForm(obj=request.json, prefix="schedule") if form.validate(): date_exp_weekly = form.date_exp_weekly.data date_exp_dates = form.date_exp_dates.data date_exp_dates_list = date_exp_dates.split( ",") if len(date_exp_dates) > 0 else [] for date in date_exp_dates_list: # remove dates before today if date < datetime.date.today().isoformat(): date_exp_dates_list.remove(date) if len(date_exp_weekly) == 0 and len(date_exp_dates_list) == 0: form.date_exp_weekly.errors.append( "Must choose a day of the week or a specific day!") starts = request.form.getlist("schedule-schedules-start") ends = request.form.getlist("schedule-schedules-end") is_active = form.is_active.data # check data for schedule time # sort with the start time for i in range(len(starts)): for j in range(i + 1, len(starts)): if starts[i] > starts[j]: [starts[i], starts[j]] = [starts[j], starts[i]] [ends[i], ends[j]] = [ends[j], ends[i]] # check end time must bigger than start time for i in range(len(starts)): if starts[i] >= ends[i]: form.schedules.errors.append( "Ending time must be later than starting time!") break # check for time conflick for i in range(len(starts) - 1): if ends[i] > starts[i + 1]: form.schedules.errors.append( "Schedule time conflick, please check and fix it!") break if len(form.errors) == 0: items = [] schedules = [{"start": starts[i], "end":ends[i]} for i in range(len(starts))] date_exps = date_exp_weekly + date_exp_dates_list for date_exp in date_exps: item = ScheduleHandler.get(username, date_exp) if item is None: item = Schedule( username=username, date_exp=date_exp, schedules=json.dumps(schedules), is_active=is_active) db.session.add(item) else: item.schedules = json.dumps(schedules) is_active = is_active items.append(item) try: db.session.commit() except: db.session.rollback() # return error message return {"error": "Error when adding an schedule"} # success, return new item return {"items": [item.serialize() for item in items]} # return form errors return {"errors": form.errors}
def schedule_edit(request, module_id, schedule_id): module = check_owner(request, module_id) schedule = Schedule.objects.get(pk=schedule_id) ActivityScheduleFormSet = formset_factory(ActivityScheduleForm, extra=0) activities = Activity.objects.filter(section__module=module) if request.method == 'POST': form = ScheduleForm(request.POST) formset = ActivityScheduleFormSet(request.POST) if form.is_valid() and formset.is_valid(): schedule.title = form.cleaned_data.get("title").strip() schedule.default = form.cleaned_data.get("default") schedule.lastupdated_date = datetime.datetime.now() # remvoe any existing default for this schedule if schedule.default: Schedule.objects.filter(module=module).update(default=False) schedule.save() # remove all the old schedule Activities ActivitySchedule.objects.filter(schedule=schedule).delete() for f in formset: act_sched = ActivitySchedule() start_date = f.cleaned_data.get("start_date") end_date = f.cleaned_data.get("end_date") digest = f.cleaned_data.get("digest") if start_date is not None: act_sched = ActivitySchedule() act_sched.schedule = schedule act_sched.start_date = start_date act_sched.end_date = end_date act_sched.digest = digest.strip() act_sched.save() return HttpResponseRedirect('../saved/') else: initial = [] section = None for a in activities: if a.section != section: section = a.section data = {} data['title'] = a.title data['digest'] = a.digest data['section'] = a.section.title try: act_s = ActivitySchedule.objects.get(schedule=schedule, digest=a.digest) start_date = act_s.start_date end_date = act_s.end_date except ActivitySchedule.DoesNotExist: start_date = None end_date = None data['start_date'] = start_date data['end_date'] = end_date initial.append(data) form = ScheduleForm(initial={ 'title': schedule.title, 'default': schedule.default }) formset = ActivityScheduleFormSet(initial=initial) return render(request, 'learning_modules/schedule-form.html', { 'form': form, 'formset': formset, 'module': module, })
def schedule_edit(request,module_id, schedule_id): module = check_owner(request,module_id) schedule = Schedule.objects.get(pk=schedule_id) ActivityScheduleFormSet = formset_factory(ActivityScheduleForm, extra=0) activities = Activity.objects.filter(section__module = module) if request.method == 'POST': form = ScheduleForm(request.POST) formset = ActivityScheduleFormSet(request.POST) if form.is_valid() and formset.is_valid(): schedule.title = form.cleaned_data.get("title").strip() schedule.default = form.cleaned_data.get("default") schedule.lastupdated_date = datetime.datetime.now() # remvoe any existing default for this schedule if schedule.default: Schedule.objects.filter(module=module).update(default=False) schedule.save() # remove all the old schedule Activities ActivitySchedule.objects.filter(schedule=schedule).delete() for f in formset: act_sched = ActivitySchedule() start_date = f.cleaned_data.get("start_date") end_date = f.cleaned_data.get("end_date") digest = f.cleaned_data.get("digest") if start_date is not None: act_sched = ActivitySchedule() act_sched.schedule = schedule act_sched.start_date = start_date act_sched.end_date = end_date act_sched.digest = digest.strip() act_sched.save() return HttpResponseRedirect('../saved/') else: initial = [] section = None for a in activities: if a.section != section: section = a.section data = {} data['title'] = a.title data['digest'] = a.digest data['section'] = a.section.title try: act_s = ActivitySchedule.objects.get(schedule=schedule,digest = a.digest) start_date = act_s.start_date end_date = act_s.end_date except ActivitySchedule.DoesNotExist: start_date = None end_date = None data['start_date'] = start_date data['end_date'] = end_date initial.append(data) form = ScheduleForm(initial={'title':schedule.title, 'default':schedule.default}) formset = ActivityScheduleFormSet(initial=initial) return render(request, 'learning_modules/schedule-form.html', {'form': form, 'formset': formset,'module':module, })