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))
Exemple #2
0
def timetable_set(request, id, school = 0):
    u'''
        Форма заполнения расписания.

        Внимание: много непонятного
    '''
    render = {}
    if school:
        school = get_object_or_404(School, id = school)
    else:
        school = request.user.school
    render['school'] = school
    render['grade'] = grade = get_object_or_404(Grade, id = id, school = school)

    try:
        current_workday = int(request.GET.get('workday', '1'))
    except ValueError:
        current_workday = 1
    if current_workday not in school.get_workdays():
        current_workday = 1

    render['workdays'] = school.get_workdays_tuple()
    render['current_workday'] = current_workday = school.get_workdays_dict()[current_workday]
    render['lessons'] = settings.LESSON_NUMBERS
    render['subjects'] = grade.get_subjects()
    render['attendance'] = TimetableDayGrade(workday = current_workday[0], grade = grade)

    if request.is_ajax():
        subject = get_object_or_404(Subject, id = request.GET.get('subject'), school = school)
        if request.GET.get('method') == 'add':
            timetable = UsalTimetable(
                    grade = grade,
                    number = request.GET.get('lesson'),
                    subject = subject,
                    group = request.GET.get('group'),
                    school = school,
                    workday = current_workday[0],
                    room = request.GET.get('room', ''),
            )
            timetable.save()
            return HttpResponse(str(timetable.id))
        elif request.GET.get('method') == 'set_room':
            timetable = get_object_or_404(UsalTimetable,
                    id = request.GET.get('lesson_id'),
                    grade = grade,
                    number = request.GET.get('lesson'),
                    subject = subject,
                    group = request.GET.get('group'),
                    school = school,
                    workday = current_workday[0],
            )
            timetable.room = request.GET.get('room', '')
            timetable.save()
        else:
            timetable = get_object_or_404(UsalTimetable,
                    id = request.GET.get('lesson_id'),
                    grade = grade,
                    number = request.GET.get('lesson'),
                    subject = subject,
                    group = request.GET.get('group'),
                    school = school,
                    workday = current_workday[0],
            )
            timetable.delete()
        return HttpResponse('ok')

    return render_to_response('timetableSet.html', render, context_instance = RequestContext(request))
Exemple #3
0
def timetable_set(request, id, school=0):
    u'''
        Форма заполнения расписания.

        Внимание: много непонятного
    '''
    render = {}
    if school:
        school = get_object_or_404(School, id=school)
    else:
        school = request.user.school
    render['school'] = school
    render['grade'] = grade = get_object_or_404(Grade, id=id, school=school)

    try:
        current_workday = int(request.GET.get('workday', '1'))
    except ValueError:
        current_workday = 1
    if current_workday not in school.get_workdays():
        current_workday = 1

    render['workdays'] = school.get_workdays_tuple()
    render['current_workday'] = current_workday = school.get_workdays_dict(
    )[current_workday]
    render['lessons'] = settings.LESSON_NUMBERS
    render['subjects'] = grade.get_subjects()
    render['attendance'] = TimetableDayGrade(workday=current_workday[0],
                                             grade=grade)

    if request.is_ajax():
        subject = get_object_or_404(Subject,
                                    id=request.GET.get('subject'),
                                    school=school)
        if request.GET.get('method') == 'add':
            timetable = UsalTimetable(
                grade=grade,
                number=request.GET.get('lesson'),
                subject=subject,
                group=request.GET.get('group'),
                school=school,
                workday=current_workday[0],
                room=request.GET.get('room', ''),
            )
            timetable.save()
            return HttpResponse(str(timetable.id))
        elif request.GET.get('method') == 'set_room':
            timetable = get_object_or_404(
                UsalTimetable,
                id=request.GET.get('lesson_id'),
                grade=grade,
                number=request.GET.get('lesson'),
                subject=subject,
                group=request.GET.get('group'),
                school=school,
                workday=current_workday[0],
            )
            timetable.room = request.GET.get('room', '')
            timetable.save()
        else:
            timetable = get_object_or_404(
                UsalTimetable,
                id=request.GET.get('lesson_id'),
                grade=grade,
                number=request.GET.get('lesson'),
                subject=subject,
                group=request.GET.get('group'),
                school=school,
                workday=current_workday[0],
            )
            timetable.delete()
        return HttpResponse('ok')

    return render_to_response('timetableSet.html',
                              render,
                              context_instance=RequestContext(request))