Example #1
0
def teacher_grade(request):
    teacher = Faculty.objects.filter(username=request.user.username).first()
    all_sections = None
    if request.user.has_perm('grades.change_grade'):
        all_sections = CourseSection.objects.filter(
                course__graded=True,
                marking_period__school_year__active_year=True,
            ).order_by('coursesectionteacher__teacher__last_name').distinct()
    elif not teacher:
        messages.info(request, 'You do not have any course sections.')
        return HttpResponseRedirect(reverse('admin:index'))
    course_sections = CourseSection.objects.filter(
            course__graded=True,
            marking_period__school_year__active_year=True,
        ).filter(teachers=teacher).distinct()
    pref = UserPreference.objects.get_or_create(user=request.user)[0].gradebook_preference

    if "ecwsp.engrade_sync" in settings.INSTALLED_APPS:
        if request.method == 'POST':
            form = EngradeSyncForm(request.POST)
            if form.is_valid():
                try:
                    from ecwsp.engrade_sync.engrade_sync import EngradeSync
                    marking_period = form.cleaned_data['marking_period']
                    include_comments = form.cleaned_data['include_comments']
                    course_sections = course_sections.filter(marking_period=marking_period)
                    es = EngradeSync()
                    errors = ""
                    for course_section in course_sections:
                        errors += es.sync_course_grades(course_section, marking_period, include_comments)
                    if errors:
                        messages.success(request, 'Engrade Sync attempted, but has some issues: ' + errors)
                    else:
                        messages.success(request, 'Engrade Sync successful. Please verify each course section!')
                except:
                    messages.info(request, 'Engrade Sync unsuccessful. Contact an administrator.')
                    logging.error('Engrade Sync unsuccessful', exc_info=True, extra={
                        'request': request,
                    })
            else:
                messages.info(request, 'You must select a valid marking period')
        form = EngradeSyncForm()
    else:
        form = None
    return render_to_response(
        'grades/teacher_grade.html',
        {'request': request, 'all_sections': all_sections, 'course_sections': course_sections, 'form': form, 'pref': pref},
        RequestContext(request, {}),
        )
Example #2
0
def teacher_grade(request):
    teacher = Faculty.objects.filter(username=request.user.username).first()
    all_sections = None
    if request.user.has_perm('grades.change_grade'):
        all_sections = CourseSection.objects.filter(
                course__graded=True,
                marking_period__school_year__active_year=True,
            ).order_by('coursesectionteacher__teacher__last_name').distinct()
    elif not teacher:
        messages.info(request, 'You do not have any course sections.')
        return HttpResponseRedirect(reverse('admin:index'))
    course_sections = CourseSection.objects.filter(
            course__graded=True,
            marking_period__school_year__active_year=True,
        ).filter(teachers=teacher).distinct()
    pref = UserPreference.objects.get_or_create(user=request.user)[0].gradebook_preference

    if "ecwsp.engrade_sync" in settings.INSTALLED_APPS:
        if request.method == 'POST':
            form = EngradeSyncForm(request.POST)
            if form.is_valid():
                try:
                    from ecwsp.engrade_sync.engrade_sync import EngradeSync
                    marking_period = form.cleaned_data['marking_period']
                    include_comments = form.cleaned_data['include_comments']
                    course_sections = course_sections.filter(marking_period=marking_period)
                    es = EngradeSync()
                    errors = ""
                    for course_section in course_sections:
                        errors += es.sync_course_grades(course_section, marking_period, include_comments)
                    if errors:
                        messages.success(request, 'Engrade Sync attempted, but has some issues: ' + errors)
                    else:
                        messages.success(request, 'Engrade Sync successful. Please verify each course section!')
                except:
                    messages.info(request, 'Engrade Sync unsuccessful. Contact an administrator.')
                    logging.error('Engrade Sync unsuccessful', exc_info=True, extra={
                        'request': request,
                    })
            else:
                messages.info(request, 'You must select a valid marking period')
        form = EngradeSyncForm()
    else:
        form = None
    return render_to_response(
        'grades/teacher_grade.html',
        {'request': request, 'all_sections': all_sections, 'course_sections': course_sections, 'form': form, 'pref': pref},
        RequestContext(request, {}),
        )
Example #3
0
def teacher_grade(request):
    if Faculty.objects.filter(username=request.user.username):
        teacher = Faculty.objects.get(username=request.user.username)
    else:
        messages.info(request, 'You do not have any courses.')
        return HttpResponseRedirect(reverse('admin:index'))
    courses = Course.objects.filter(
            graded=True,
            marking_period__school_year__active_year=True,
        ).filter(Q(teacher=teacher) | Q(secondary_teachers=teacher)).distinct()

    if "ecwsp.engrade_sync" in settings.INSTALLED_APPS:
        if request.method == 'POST':
            form = EngradeSyncForm(request.POST)
            if form.is_valid():
                try:
                    from ecwsp.engrade_sync.engrade_sync import EngradeSync
                    marking_period = form.cleaned_data['marking_period']
                    include_comments = form.cleaned_data['include_comments']
                    courses = courses.filter(marking_period=marking_period)
                    es = EngradeSync()
                    errors = ""
                    for course in courses:
                        errors += es.sync_course_grades(course, marking_period, include_comments)
                    if errors:
                        messages.success(request, 'Engrade Sync attempted, but has some issues: ' + errors)
                    else:
                        messages.success(request, 'Engrade Sync successful. Please verify each course!')
                except:
                    messages.info(request, 'Engrade Sync unsuccessful. Contact an administrator.')
                    logging.error('Engrade Sync unsuccessful', exc_info=True, extra={
                        'request': request,
                    })
            else:
                messages.info(request, 'You must select a valid marking period')
        engrade_sync = True
        form = EngradeSyncForm()
    else:
        engrade_sync = False
        form = None
    return render_to_response(
        'grades/teacher_grade.html',
        {'request': request, 'courses': courses, 'form': form,'engrade_sync': engrade_sync},
        RequestContext(request, {}),
        )
Example #4
0
def teacher_grade(request):
    if Faculty.objects.filter(username=request.user.username):
        teacher = Faculty.objects.get(username=request.user.username)
    else:
        messages.info(request, 'You do not have any courses.')
        return HttpResponseRedirect(reverse('admin:index'))
    courses = Course.objects.filter(
        graded=True,
        marking_period__school_year__active_year=True,
    ).filter(Q(teacher=teacher) | Q(secondary_teachers=teacher)).distinct()

    if "ecwsp.engrade_sync" in settings.INSTALLED_APPS:
        if request.method == 'POST':
            form = EngradeSyncForm(request.POST)
            if form.is_valid():
                try:
                    from ecwsp.engrade_sync.engrade_sync import EngradeSync
                    marking_period = form.cleaned_data['marking_period']
                    include_comments = form.cleaned_data['include_comments']
                    courses = courses.filter(marking_period=marking_period)
                    es = EngradeSync()
                    errors = ""
                    for course in courses:
                        errors += es.sync_course_grades(
                            course, marking_period, include_comments)
                    if errors:
                        messages.success(
                            request,
                            'Engrade Sync attempted, but has some issues: ' +
                            errors)
                    else:
                        messages.success(
                            request,
                            'Engrade Sync successful. Please verify each course!'
                        )
                except:
                    messages.info(
                        request,
                        'Engrade Sync unsuccessful. Contact an administrator.')
                    logging.error('Engrade Sync unsuccessful',
                                  exc_info=True,
                                  extra={
                                      'request': request,
                                  })
            else:
                messages.info(request,
                              'You must select a valid marking period')
        engrade_sync = True
        form = EngradeSyncForm()
    else:
        engrade_sync = False
        form = None
    return render_to_response(
        'grades/teacher_grade.html',
        {
            'request': request,
            'courses': courses,
            'form': form,
            'engrade_sync': engrade_sync
        },
        RequestContext(request, {}),
    )