示例#1
0
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)
示例#2
0
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)
示例#3
0
 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
         })
示例#4
0
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)
示例#5
0
 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, })
示例#8
0
 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": []})
示例#9
0
文件: web.py 项目: barrenec/Vigilante
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)
示例#10
0
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"))
示例#11
0
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))
示例#12
0
 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": []
         })
示例#13
0
文件: web.py 项目: barrenec/Vigilante
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)
示例#14
0
文件: views.py 项目: eamartin/nerds
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)
示例#16
0
    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, })