예제 #1
0
파일: forms.py 프로젝트: ianmccon/schools
 def __init__(self, instance=None, *args, **kwargs):
     if instance is None:
         instance = Lesson.objects.get(pk=kwargs['initial']['lesson'])
     lesson = instance
     self.instance = instance
     lesson_assign_attendees.send(sender=self, lesson=lesson)
     
     initial = kwargs.get('initial', {}); kwargs['initial'] = initial
     if 'real_classroom' not in initial: 
         initial['real_classroom'] = instance.real_classroom.pk if instance.realized else instance.classroom.pk
     if 'real_lector' not in initial: 
         initial['real_lector'] = instance.real_lector.pk if instance.realized else instance.course.lector.pk
     if 'real_content' not in initial and instance.realized: 
         initial['real_content'] = instance.real_content
     if 'real_start' not in initial: 
         initial['real_start'] = instance.real_start if instance.realized else instance.start
     if 'real_end' not in initial: 
         initial['real_end'] = instance.real_end if instance.realized else instance.end
     if 'lesson_attendees' not in initial: 
         initial['lesson_attendees'] = [a.pk for a in instance.lessonattendee_set.all() if a.present]
     
     super(LessonRealizedForm1, self).__init__(*args, **kwargs)
     self.fields['lesson'].initial = lesson.pk
     classroom_buildings(self.fields['real_classroom'])
     self.fields['lesson_attendees'].queryset = lesson.lessonattendee_set.all() 
예제 #2
0
파일: views.py 프로젝트: ianmccon/schools
def lesson_attendance(request, course_id, object_id):
    course = get_object_or_404(Course, pk=course_id)
    lesson = get_object_or_404(course.lesson_set, pk=object_id)
    lesson.fill_attendance()
    lesson_assign_attendees.send(sender=lesson_attendance, lesson=lesson)
    attendee_form_class = PreProcessForm(LessonAttendeeForm, lambda form:form.limit_to_course(course))
    inlines = [{'model':LessonAttendee, 'form':attendee_form_class, 'extra':1}]
    return update_object(request, obj=lesson, form_class=LessonRealizedForm,
                         template_name='courses/lesson_attendance.html',
                         extra_context={'course':course},
                         inlines=inlines, post_save_redirect=lesson.get_attendance_url())