Пример #1
0
def view_course_offerings(request, semester=None):
    """
    View to view all courses
    """
    if semester:
        semester = get_object_or_404(Semester, name=semester)
        semesters = None
    else:
        semester = Semester.get_semester(date=datetime.date.today() + datetime.timedelta(days=60))
        semesters = Semester.objects.filter(start__lte=datetime.date.today() + datetime.timedelta(days=365)).order_by('-end')[:6]
    
    if 'offeringsearch' in request.GET and request.GET['offeringsearch'] and request.GET['offeringsearch'].isdigit():
        # handle the search for other offerings
        offering = get_object_or_404(CourseOffering, id=request.GET['offering'])
        return HttpResponseRedirect(reverse('advisornotes.views.view_offering_notes', kwargs={'course_slug': offering.slug}))

    subunits = Unit.sub_unit_ids(request.units)
    offerings = CourseOffering.objects.filter(owner__in=subunits, semester=semester)
    form = OfferingSearchForm()
    return render(request,
        'advisornotes/view_course_offerings.html',
        {'offerings': offerings, 'semester': semester, 'semesters': semesters, 'form': form}
    )
Пример #2
0
def edit_artifact(request, artifact_slug):
    """
    View to edit a new artifact
    """
    artifact = get_object_or_404(Artifact, slug=artifact_slug)
    unit_choices = [(u.id, unicode(u)) for u in request.units]
    if request.POST:
        form = ArtifactForm(request.POST, instance=artifact)
        form.fields['unit'].choices = unit_choices
        if form.is_valid():
            artifact = form.save()

            #LOG EVENT#
            l = LogEntry(userid=request.user.username,
                  description=(u"edited artifact %s by %s") % (artifact, request.user.username),
                  related_object=form.instance)
            l.save()
            messages.add_message(request, messages.SUCCESS, u'Artifact "%s" edited.' % artifact)
            return HttpResponseRedirect(reverse('advisornotes.views.view_artifacts', kwargs={}))
    else:
        form = ArtifactForm(instance=artifact)
        form.fields['unit'].choices = unit_choices
    return render(request, 'advisornotes/edit_artifact.html', {'form': form, 'artifact': artifact})
Пример #3
0
def edit_query(request, report, query_id):
    report = get_object_or_404(Report, slug=report)
    query = get_object_or_404(Query, id=int(query_id))

    if request.method == 'POST':
        form = QueryForm(request.POST)
        if form.is_valid():
            f = form.save(commit=False)
            f.report = report
            f.created_by = request.user.username
            f.save()
            query.delete()
            messages.success(request, "Edited query: %s" % f.query)
            return HttpResponseRedirect(
                reverse('reports:view_report', kwargs={'report': report.slug}))
    else:
        form = QueryForm(instance=query)

    return render(request, 'reports/edit_query.html', {
        'form': form,
        'report': report,
        'query_id': query_id
    })
Пример #4
0
def resolve_alert(request, alert_type, alert_id):
    """
    Resolve an alert
    """
    alert = get_object_or_404(Alert,
                              id=alert_id,
                              alerttype__unit__in=request.units)

    if request.method == 'POST':
        form = ResolutionForm(request.POST)
        if form.is_valid():
            f = form.save(commit=False)
            f.alert = alert
            f.update_type = "RESO"
            f.save()
            messages.success(request, "Resolved alert %s." % str(alert))
            l = LogEntry(userid=request.user.username,
                         description="Resolved alert %s." % str(alert),
                         related_object=form.instance)
            l.save()
            return HttpResponseRedirect(
                reverse('alerts.views.view_alert',
                        kwargs={
                            'alert_type': alert_type,
                            'alert_id': alert_id
                        }))
    else:
        form = ResolutionForm(
            initial={'resolved_until': datetime.date.today()})

    return render(
        request, 'alerts/resolve_alert.html', {
            'alert_type': alert.alerttype,
            'alert': alert,
            'form': form,
            'resolve_reopen_or_comment_on': 'Resolve'
        })
Пример #5
0
def record_advisor_visit(request, userid, unit_slug):
    unit = get_object_or_404(Unit,
                             slug=unit_slug,
                             id__in=(u.id for u in request.units))
    advisor = get_object_or_404(Person, userid=request.user.username)
    try:
        student = Person.objects.get(find_userid_or_emplid(userid))
        nonstudent = None
    except Person.DoesNotExist:
        nonstudent = get_object_or_404(NonStudent, slug=userid)
        student = None

    av = AdvisorVisit(student=student,
                      nonstudent=nonstudent,
                      program=None,
                      advisor=advisor,
                      unit=unit)
    av.save()

    messages.add_message(
        request, messages.SUCCESS, '%s advisor visit recorded on %s.' %
        (unit.informal_name(), datetime.date.today()))
    return HttpResponseRedirect(
        reverse('advising:student_notes', kwargs={'userid': userid}))
Пример #6
0
def new_artifact_note(request,
                      unit_course_slug=None,
                      course_slug=None,
                      artifact_slug=None):
    unit_choices = [(u.id, str(u)) for u in request.units]
    related = course = offering = artifact = None

    if unit_course_slug != None:
        related = course = get_object_or_404(Course, slug=unit_course_slug)
    elif course_slug != None:
        related = offering = get_object_or_404(CourseOffering,
                                               slug=course_slug)
    else:
        related = artifact = get_object_or_404(Artifact, slug=artifact_slug)

    if request.method == 'POST':
        form = ArtifactNoteForm(request.POST, request.FILES)
        form.fields['unit'].choices = unit_choices
        if form.is_valid():
            note = form.save(commit=False)
            note.advisor = Person.objects.get(userid=request.user.username)

            if 'file_attachment' in request.FILES:
                upfile = request.FILES['file_attachment']
                note.file_mediatype = upfile.content_type

            if course:
                note.course = course
            elif offering:
                note.course_offering = offering
            else:
                note.artifact = artifact

            note.save()

            #LOG EVENT#
            l = LogEntry(userid=request.user.username,
                         description=("new note for %s by %s") %
                         (related, request.user.username),
                         related_object=form.instance)
            l.save()
            messages.add_message(request, messages.SUCCESS,
                                 'Note for %s created.' % related)

            if course:
                return HttpResponseRedirect(
                    reverse('advising:view_course_notes',
                            kwargs={'unit_course_slug': course.slug}))
            elif offering:
                return HttpResponseRedirect(
                    reverse('advising:view_offering_notes',
                            kwargs={'course_slug': offering.slug}))
            else:
                return HttpResponseRedirect(
                    reverse('advising:view_artifact_notes',
                            kwargs={'artifact_slug': artifact.slug}))
    else:
        form = ArtifactNoteForm(initial={})
        form.fields['unit'].choices = unit_choices

    return render(
        request, 'advisornotes/new_artifact_note.html', {
            'form': form,
            'related': related,
            'artifact': artifact,
            'course': course,
            'offering': offering
        })