Exemple #1
0
def timetableSet(request, id, school = 0):
    from forms import TimetableForm
    from django import forms
    render = {}
    if school:
        school = get_object_or_404(School, id = school)
    else:
        school = request.user.school
    render['school'] = school
    grade = get_object_or_404(Grade, id = id, school = school)
    form = TimetableForm()
    for day in settings.WORKDAYS:
        if not school.saturday and day[0] == 6: continue 
        for lesson in settings.LESSON_NUMBERS:
            for i in xrange(1, 3):
                room = ''
                subject = None
                if UsalTimetable.objects.filter(grade = grade, number = lesson[0], group = i, school = school, workday = day[0]).count() != 0:
                    u = UsalTimetable.objects.get(grade = grade, number = lesson[0], group = i, school = school, workday = day[0])
                    room = u.room
                    subject = u.subject.id
                form.fields['l_r_%s_%s_%d' % (day[0], lesson[0], i)] = forms.CharField(initial = room, required = False)
                form.fields['l_s_%s_%s_%d' % (day[0], lesson[0], i)] = forms.ModelChoiceField(initial = subject, queryset = grade.get_subjects(), required = False)
    if request.method == 'POST':
        form.initial = request.POST
        for day in settings.WORKDAYS:
            if not school.saturday and day[0] == 6: continue 
            for lesson in settings.LESSON_NUMBERS:
                for i in xrange(1, 3):
                    subject = request.POST.get('l_s_%s_%s_%d' % (day[0], lesson[0], i), '')
                    if subject == '': 
                        if UsalTimetable.objects.filter(grade = grade, number = lesson[0], group = i, school = school, workday = day[0]).count() != 0:
                            UsalTimetable.objects.filter(grade = grade, number = lesson[0], group = i, school = school, workday = day[0]).delete()
                        continue
                    subject = get_object_or_404(Subject, id = subject, school = school)
                    if UsalTimetable.objects.filter(grade = grade, number = lesson[0], group = i, school = school, workday = day[0]).count() == 0:
                        tt = UsalTimetable(grade = grade, number = lesson[0], group = i, school = school, workday = day[0])
                    else:
                        tt = UsalTimetable.objects.get(grade = grade, number = lesson[0], group = i, school = school, workday = day[0])
                    tt.subject = subject
                    tt.room = request.POST.get('l_r_%s_%s_%d' % (day[0], lesson[0], i), '')
                    tt.save()
    render['form'] = form
    return render_to_response('attendance/timetableSet.html', render, context_instance = RequestContext(request))