Exemple #1
0
def edit_electee_groups(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit electee groups'
        return redirect('electees:view_electee_groups')
    e_groups = ElecteeGroup.objects.filter(term=get_current_term())
    ElecteeGroupFormSet = modelformset_factory(ElecteeGroup,
                                               exclude=(
                                                   'term',
                                                   'members',
                                                   'points',
                                               ),
                                               can_delete=True,
                                               widgets={
                                                   'leaders':
                                                   CheckboxSelectMultiple,
                                                   'officers':
                                                   CheckboxSelectMultiple
                                               })
    ElecteeGroupFormSet.form.base_fields['leaders'].queryset = get_actives(
    ).order_by('last_name', 'first_name')
    #ElecteeGroupFormSet.form.base_fields['leaders'].widget=CheckboxSelectMultiple
    ElecteeGroupFormSet.form.base_fields[
        'officers'].queryset = get_current_officers().order_by(
            'last_name', 'first_name')
    if request.method == 'POST':
        formset = ElecteeGroupFormSet(request.POST, prefix='groups')
        if formset.is_valid():
            instances = formset.save(commit=False)
            for instance in instances:
                if not instance.id:
                    instance.term = get_current_term()
                    instance.points = 0
                instance.save()
            formset.save_m2m()
            request.session[
                'success_message'] = 'Electee groups successfully updated'
            return redirect('electees:view_electee_groups')
        else:
            request.session[
                'error_message'] = 'Form is invalid. Please correct the noted errors'
    else:
        formset = ElecteeGroupFormSet(queryset=e_groups, prefix='groups')
    template = loader.get_template('generic_formset.html')
    context_dict = {
        'formset': formset,
        'prefix': 'groups',
        'subsubnav': 'groups',
        'has_files': False,
        'submit_name': 'Update Electee Groups',
        'form_title': 'Update/Add/Remove Electee Groups',
        'help_text':
        'Create the electee groups for this semester, and specify the leaders nd officers. You can also remove or edit here.',
        'can_add_row': True,
        'base': 'electees/base_electees.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #2
0
def mindset(request):
    request.session['current_page'] = request.path
    template = loader.get_template('outreach/MindSET.html')
    k_12_officers = Officer.objects.filter(
        position__name='K-12 Outreach Officer').order_by(
            '-term__year', 'term__semester_type__name')
    officers_unique = []
    id_set = set()
    positions = OfficerPosition.objects.filter(name='K-12 Outreach Officer')
    current_officers = k_12_officers.filter(term=get_current_term())

    if positions.exists:
        position = positions[0]
    else:
        position = None
    for officer in k_12_officers:
        if officer.user.uniqname in id_set:
            continue
        else:
            id_set |= set([officer.user.uniqname])
            if not current_officers.filter(
                    user__uniqname=officer.user.uniqname).exists():
                officers_unique.append(officer)

    mindset_main_photo = OutreachPhoto.objects.filter(
        photo_type__name='MindSET_Main')
    mindset_slideshow_photos = OutreachPhoto.objects.filter(
        photo_type__name='MindSET_Slideshow', active=True)
    if mindset_main_photo.exists():
        main_photo = mindset_main_photo[0]
    else:
        main_photo = None
    mindset_parking_photo = OutreachPhoto.objects.filter(
        photo_type__name='MindSET_Map')
    if mindset_parking_photo.exists():
        parking_photo = mindset_parking_photo[0]
    else:
        parking_photo = None
    events = CalendarEvent.objects.filter(
        term=get_current_term(),
        event_type__name='MindSET').annotate(earliest_shift=Min(
            'eventshift__start_time')).order_by('earliest_shift')
    context_dict = {
        'events': events,
        'main_photo': main_photo,
        'parking_photo': parking_photo,
        'modules': MindSETModule.objects.all(),
        'k_12_officers': officers_unique,
        'position': position,
        'current_officers': current_officers,
        'volunteer_files': VolunteerFile.objects.all(),
        'slideshow_photos': mindset_slideshow_photos,
        'subnav': 'mindset',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #3
0
def view_electee_groups(request):
    e_groups = ElecteeGroup.objects.filter(term=get_current_term()).order_by("points")
    packets = ElecteeResource.objects.filter(term=get_current_term(), resource_type__is_packet=True).order_by(
        "resource_type"
    )
    resources = ElecteeResource.objects.filter(term=get_current_term(), resource_type__is_packet=False).order_by(
        "resource_type"
    )
    template = loader.get_template("electees/view_electee_groups.html")
    context_dict = {"groups": e_groups, "resources": resources, "packets": packets}
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #4
0
def mindset(request):
    request.session['current_page']=request.path
    template = loader.get_template('outreach/MindSET.html')
    k_12_officers = Officer.objects.filter(position__name='K-12 Outreach Officer').order_by('-term__year','term__semester_type__name')
    officers_unique=[]
    id_set = set()
    positions=OfficerPosition.objects.filter(name='K-12 Outreach Officer')
    current_officers=k_12_officers.filter(term=get_current_term())

    if positions.exists:
        position=positions[0]
    else:
        position=None
    for officer in k_12_officers:
        if officer.user.uniqname in id_set:
            continue
        else:
            id_set|=set([officer.user.uniqname])
            if not current_officers.filter(user__uniqname=officer.user.uniqname).exists():
                officers_unique.append(officer)

    mindset_main_photo = OutreachPhoto.objects.filter(photo_type__name='MindSET_Main')
    mindset_slideshow_photos = OutreachPhoto.objects.filter(photo_type__name='MindSET_Slideshow',active=True)
    if mindset_main_photo.exists():
        main_photo=mindset_main_photo[0]
    else:
        main_photo=None
    mindset_parking_photo = OutreachPhoto.objects.filter(photo_type__name='MindSET_Map')
    if mindset_parking_photo.exists():
        parking_photo=mindset_parking_photo[0]
    else:
        parking_photo=None
    events = CalendarEvent.objects.filter(term=get_current_term(),event_type__name='MindSET').annotate(earliest_shift=Min('eventshift__start_time')).order_by('earliest_shift')
    context_dict = {
            'events':events,
            'main_photo':main_photo,
            'parking_photo':parking_photo,
            'modules':MindSETModule.objects.all(),
            'k_12_officers':officers_unique,
            'position':position,
            'current_officers':current_officers,
            'volunteer_files':VolunteerFile.objects.all(),
            'slideshow_photos':mindset_slideshow_photos,
            'subnav':'mindset',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #5
0
def edit_electee_groups(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session["error_message"] = "You are not authorized to edit electee groups"
        return redirect("electees:view_electee_groups")
    e_groups = ElecteeGroup.objects.filter(term=get_current_term())
    ElecteeGroupFormSet = modelformset_factory(
        ElecteeGroup,
        exclude=("term", "members", "points"),
        can_delete=True,
        widgets={"leaders": CheckboxSelectMultiple, "officers": CheckboxSelectMultiple},
    )
    ElecteeGroupFormSet.form.base_fields["leaders"].queryset = get_actives().order_by("last_name", "first_name")
    # ElecteeGroupFormSet.form.base_fields['leaders'].widget=CheckboxSelectMultiple
    ElecteeGroupFormSet.form.base_fields["officers"].queryset = get_current_officers().order_by(
        "last_name", "first_name"
    )
    if request.method == "POST":
        formset = ElecteeGroupFormSet(request.POST, prefix="groups")
        if formset.is_valid():
            instances = formset.save(commit=False)
            for instance in instances:
                if not instance.id:
                    instance.term = get_current_term()
                    instance.points = 0
                instance.save()
            formset.save_m2m()
            request.session["success_message"] = "Electee groups successfully updated"
            return redirect("electees:view_electee_groups")
        else:
            request.session["error_message"] = "Form is invalid. Please correct the noted errors"
    else:
        formset = ElecteeGroupFormSet(queryset=e_groups, prefix="groups")
    template = loader.get_template("generic_formset.html")
    context_dict = {
        "formset": formset,
        "prefix": "groups",
        "subsubnav": "groups",
        "has_files": False,
        "submit_name": "Update Electee Groups",
        "form_title": "Update/Add/Remove Electee Groups",
        "help_text": "Create the electee groups for this semester, and specify the leaders nd officers. You can also remove or edit here.",
        "can_add_row": True,
        "base": "electees/base_electees.html",
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #6
0
def edit_electee_group_membership(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit electee groups'
        return redirect('electees:view_electee_groups')
    if request.method == 'POST':
        electee_groups_json = request.POST['electee_groups']
        electee_groups = json.loads(electee_groups_json)
        for group_id in electee_groups:
            members = electee_groups[group_id]
            group = ElecteeGroup.objects.get(id=group_id)
            group.members.clear()
            for member in members:
                group.members.add(MemberProfile.objects.get(uniqname=member))
        request.session['success_message'] = 'Your changes have been saved'

    e_groups = ElecteeGroup.objects.filter(term=get_current_term())
    template = loader.get_template(
        'electees/edit_electee_group_membership.html')
    context_dict = {
        'electee_groups': e_groups,
        'unassigned_electees': get_unassigned_electees(),
        'subsubnav': 'members',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #7
0
def get_terms():
    current = get_current_term()
    query = Q(year__lte=current.year)&~Q(semester_type__name='Summer')
    if current.semester_type.name=='Winter':
        query = query &~(Q(semester_type__name='Fall')&Q(year=current.year))
    terms = AcademicTerm.objects.filter(query)
    return terms.order_by('-year','semester_type__name')
Exemple #8
0
def outreach_event(request, url_stem):
    request.session['current_page'] = request.path
    outreach_event = get_object_or_404(OutreachEventType, url_stem=url_stem)
    events = CalendarEvent.objects.filter(
        term=get_current_term(),
        event_type=outreach_event.event_category,
        eventshift__end_time__gte=timezone.now()).annotate(earliest_shift=Min(
            'eventshift__start_time')).order_by('earliest_shift')
    template = loader.get_template('outreach/outreach_template.html')
    context_dict = {
        'events':
        events,
        'subnav':
        url_stem,
        'title':
        outreach_event.title,
        'text':
        outreach_event.text,
        'has_cal_events':
        outreach_event.has_calendar_events,
        'event_category':
        outreach_event.event_category.name,
        'event_timeline':
        outreach_event.outreachevent_set.all().order_by('-pin_to_top', '-id'),
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #9
0
def edit_electee_group_membership(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session["error_message"] = "You are not authorized to edit electee groups"
        return redirect("electees:view_electee_groups")
    if request.method == "POST":
        electee_groups_json = request.POST["electee_groups"]
        electee_groups = json.loads(electee_groups_json)
        for group_id in electee_groups:
            members = electee_groups[group_id]
            group = ElecteeGroup.objects.get(id=group_id)
            group.members.clear()
            for member in members:
                group.members.add(MemberProfile.objects.get(uniqname=member))
        request.session["success_message"] = "Your changes have been saved"

    e_groups = ElecteeGroup.objects.filter(term=get_current_term())
    template = loader.get_template("electees/edit_electee_group_membership.html")
    context_dict = {
        "electee_groups": e_groups,
        "unassigned_electees": get_unassigned_electees(),
        "subsubnav": "members",
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #10
0
 def get_current_officer_positions(cls, user):
     profile = cls.get_profile(user)
     if not profile:
         return Officer.objects.none()
     term = get_current_term()
     if term.semester_type.name == "Summer":
         term = get_next_full_term()
     current_positions = Officer.objects.filter(user=profile, term=term)
     return current_positions
Exemple #11
0
 def get_current_officer_positions(cls,user):
     profile = cls.get_profile(user)
     if not profile:
         return Officer.objects.none()
     term = get_current_term()
     if term.semester_type.name=='Summer':
         term = get_next_full_term()
     current_positions = Officer.objects.filter(user=profile,term = term)
     return current_positions
Exemple #12
0
def view_electee_groups(request):
    e_groups = ElecteeGroup.objects.filter(
        term=get_current_term()).order_by('points')
    packets = ElecteeResource.objects.filter(
        term=get_current_term(),
        resource_type__is_packet=True).order_by('resource_type')
    resources = ElecteeResource.objects.filter(
        term=get_current_term(),
        resource_type__is_packet=False).order_by('resource_type')
    template = loader.get_template('electees/view_electee_groups.html')
    context_dict = {
        'groups': e_groups,
        'resources': resources,
        'packets': packets,
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #13
0
def electee_stopped_electing(profile):
    profile.still_electing=False
    profile.save()
    future_events = CalendarEvent.objects.filter(eventshift__attendees=profile,completed=False)
    for event in future_events:
        for shift in event.eventshift_set.all():
            shift.attendees.remove(profile)
            shift.save()
    for group in ElecteeGroup.objects.filter(term=get_current_term(),members=profile):
        group.members.remove(profile)
        group.save()
Exemple #14
0
 def project_reports_you_can_view(cls, user):
     if user.is_superuser:
         return ProjectReport.objects.filter(term=get_current_term())
     current_positions = cls.get_current_officer_positions(user)
     if current_positions.filter(position__name="Secretary").exists():
         return ProjectReport.objects.filter(term=get_current_term())
     profile = cls.get_profile(user)
     if not profile:
         return ProjectReport.objects.none()
     query = Q()
     events = CalendarEvent.objects.filter(term=get_current_term()).filter(~Q(project_report=None))
     for position in current_positions:
         query = query | Q(assoc_officer=position.position)
     query = query | Q(leaders=profile)
     events = events.filter(query)
     project_reports = []
     for event in events:
         if not event.project_report in project_reports:
             project_reports.append(event.project_report)
     return project_reports
Exemple #15
0
 def project_reports_you_can_view(cls,user):
     if user.is_superuser:
         return ProjectReport.objects.filter(term=get_current_term())
     current_positions=cls.get_current_officer_positions(user)
     if current_positions.filter(position__name='Secretary').exists():
         return ProjectReport.objects.filter(term=get_current_term())
     profile =cls.get_profile(user)
     if not profile:
         return ProjectReport.objects.none()
     query = Q()
     events=CalendarEvent.objects.filter(term=get_current_term()).filter(~Q(project_report=None))
     for position in current_positions:
         query = query|Q(assoc_officer=position.position)
     query=query|Q(leaders=profile)
     events =events.filter(query)
     project_reports=[]
     for event in events:
         if not event.project_report in project_reports:
             project_reports.append(event.project_report)
     return project_reports
Exemple #16
0
def edit_electee_resources(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit electee resources.'
        return redirect('electees:view_electee_groups')
    ResourceFormSet = modelformset_factory(ElecteeResource,
                                           exclude=('term', ),
                                           can_delete=True)
    term = get_current_term()
    if request.method == 'POST':
        formset = ResourceFormSet(
            request.POST,
            request.FILES,
            prefix='resources',
            queryset=ElecteeResource.objects.filter(term=term))
        if formset.is_valid():
            instances = formset.save(commit=False)
            for instance in instances:
                instance.term = term
                instance.save()
            request.session[
                'success_message'] = 'Electee resources updated successfully'
            return redirect('electees:view_electee_groups')
        else:
            request.session[
                'error_message'] = 'Form is invalid. Please correct the noted errors.'
    else:
        formset = ResourceFormSet(
            prefix='resources',
            queryset=ElecteeResource.objects.filter(term=term))
    template = loader.get_template('generic_formset.html')
    context_dict = {
        'formset':
        formset,
        'prefix':
        'resources',
        'has_files':
        True,
        'submit_name':
        'Update Electee Resources',
        'form_title':
        'Update/Add/Remove Electee Resources for %s' % (unicode(term)),
        'help_text':
        'These are the full packets and their constituent parts. If you need a part that isn\'t listed here, contact the web chair.',
        'can_add_row':
        True,
        'base':
        'electees/base_electees.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #17
0
def electee_stopped_electing(profile):
    profile.still_electing = False
    profile.save()
    future_events = CalendarEvent.objects.filter(eventshift__attendees=profile,
                                                 completed=False)
    for event in future_events:
        for shift in event.eventshift_set.all():
            shift.attendees.remove(profile)
            shift.save()
    for group in ElecteeGroup.objects.filter(term=get_current_term(),
                                             members=profile):
        group.members.remove(profile)
        group.save()
Exemple #18
0
def leadership_for_term(request,term_id):
    template = loader.get_template('about/leadership.html')
    term = get_object_or_404(AcademicTerm,id=term_id)
    context_dict = {
        "officers":pack_officers_for_term(AcademicTerm.objects.get(id=term_id)),
        'request':request,
        'terms':get_terms()[:5],
        'requested_term':term,
        'is_current':(term_id==get_current_term().id),
        'subnav':'leadership',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #19
0
def tutoring(request):
    request.session['current_page']=request.path
    events = CalendarEvent.objects.filter(term=get_current_term(),event_type__name='Tutoring Hours').order_by('announce_start')
    officers = Officer.objects.filter(position__name='Campus Outreach Officer')
    template = loader.get_template('outreach/tutoring.html')
    tutoring_pages = TutoringPageSection.objects.all().order_by('page_order')
    context_dict = {
        'events':events,
        'tutoring_officers':officers,
        'pages':tutoring_pages,
        'subnav':'tutoring',
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #20
0
def edit_electee_group_points(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session[
            'error_message'] = 'You are not authorized to edit electee group points.'
        return redirect('electees:view_electee_groups')
    GroupPointsFormSet = modelformset_factory(ElecteeGroupEvent,
                                              exclude=('related_event_id', ),
                                              can_delete=True)
    term = get_current_term()
    if request.method == 'POST':
        formset = GroupPointsFormSet(request.POST,
                                     prefix='group_points',
                                     queryset=ElecteeGroupEvent.objects.filter(
                                         related_event_id=None,
                                         electee_group__term=term))
        if formset.is_valid():
            formset.save()
            request.session[
                'success_message'] = 'Electee group points updated successfully'
            return redirect('electees:view_electee_groups')
        else:
            request.session[
                'error_message'] = 'Form is invalid. Please correct the noted errors.'
    else:
        formset = GroupPointsFormSet(prefix='group_points',
                                     queryset=ElecteeGroupEvent.objects.filter(
                                         related_event_id=None,
                                         electee_group__term=term))
    template = loader.get_template('generic_formset.html')
    context_dict = {
        'formset': formset,
        'prefix': 'group_points',
        'subsubnav': 'points',
        'has_files': False,
        'submit_name': 'Update Electee Group Points',
        'form_title': 'Update/Add Remove Electee Group Points',
        'help_text':
        'Track the electee group points. You should not note any points from threshold participation at service or social events here. Those are tabulated automatically.',
        'can_add_row': True,
        'base': 'electees/base_electees.html',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #21
0
def outreach_event(request,url_stem):
    request.session['current_page']=request.path
    outreach_event = get_object_or_404(OutreachEventType,url_stem=url_stem)
    events = CalendarEvent.objects.filter(term=get_current_term(),event_type=outreach_event.event_category,eventshift__end_time__gte=timezone.now()).annotate(earliest_shift=Min('eventshift__start_time')).order_by('earliest_shift')
    template = loader.get_template('outreach/outreach_template.html')
    context_dict = {
        'events':events,
        'subnav':url_stem,
        'title':outreach_event.title,
        'text':outreach_event.text,
        'has_cal_events':outreach_event.has_calendar_events,
        'event_category':outreach_event.event_category.name,
        'event_timeline':outreach_event.outreachevent_set.all().order_by('-pin_to_top','-id'),
        }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #22
0
def tutoring(request):
    request.session['current_page'] = request.path
    events = CalendarEvent.objects.filter(
        term=get_current_term(),
        event_type__name='Tutoring Hours').order_by('announce_start')
    officers = Officer.objects.filter(position__name='Campus Outreach Officer')
    template = loader.get_template('outreach/tutoring.html')
    tutoring_pages = TutoringPageSection.objects.all().order_by('page_order')
    context_dict = {
        'events': events,
        'tutoring_officers': officers,
        'pages': tutoring_pages,
        'subnav': 'tutoring',
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #23
0
def get_common_context(request):
    context_dict=get_message_dict(request)
    user_is_member = False
    has_profile = False
    event_signed_up = request.session.pop('event_signed_up',None)
    if hasattr(request.user,'userprofile'):  
        has_profile = True
        if request.user.userprofile.is_member():
            user_is_member = True
    context_dict.update({
        'request':request,
        'term':get_current_term(),
        'user_is_member':user_is_member,
        'has_profile':has_profile,
        'event_signed_up':event_signed_up,
        'now':timezone.now(),
        'main_nav':'outreach',
        'sub_nav_extras':OutreachEventType.objects.all(),
        })
    return context_dict
Exemple #24
0
def get_common_context(request):
    context_dict = get_message_dict(request)
    user_is_member = False
    has_profile = False
    event_signed_up = request.session.pop('event_signed_up', None)
    if hasattr(request.user, 'userprofile'):
        has_profile = True
        if request.user.userprofile.is_member():
            user_is_member = True
    context_dict.update({
        'request': request,
        'term': get_current_term(),
        'user_is_member': user_is_member,
        'has_profile': has_profile,
        'event_signed_up': event_signed_up,
        'now': timezone.now(),
        'main_nav': 'outreach',
        'sub_nav_extras': OutreachEventType.objects.all(),
    })
    return context_dict
Exemple #25
0
def edit_electee_group_points(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session["error_message"] = "You are not authorized to edit electee group points."
        return redirect("electees:view_electee_groups")
    GroupPointsFormSet = modelformset_factory(ElecteeGroupEvent, exclude=("related_event_id",), can_delete=True)
    term = get_current_term()
    if request.method == "POST":
        formset = GroupPointsFormSet(
            request.POST,
            prefix="group_points",
            queryset=ElecteeGroupEvent.objects.filter(related_event_id=None, electee_group__term=term),
        )
        if formset.is_valid():
            formset.save()
            request.session["success_message"] = "Electee group points updated successfully"
            return redirect("electees:view_electee_groups")
        else:
            request.session["error_message"] = "Form is invalid. Please correct the noted errors."
    else:
        formset = GroupPointsFormSet(
            prefix="group_points",
            queryset=ElecteeGroupEvent.objects.filter(related_event_id=None, electee_group__term=term),
        )
    template = loader.get_template("generic_formset.html")
    context_dict = {
        "formset": formset,
        "prefix": "group_points",
        "subsubnav": "points",
        "has_files": False,
        "submit_name": "Update Electee Group Points",
        "form_title": "Update/Add Remove Electee Group Points",
        "help_text": "Track the electee group points. You should not note any points from threshold participation at service or social events here. Those are tabulated automatically.",
        "can_add_row": True,
        "base": "electees/base_electees.html",
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #26
0
def edit_electee_resources(request):
    if not Permissions.can_manage_electee_progress(request.user):
        request.session["error_message"] = "You are not authorized to edit electee resources."
        return redirect("electees:view_electee_groups")
    ResourceFormSet = modelformset_factory(ElecteeResource, exclude=("term",), can_delete=True)
    term = get_current_term()
    if request.method == "POST":
        formset = ResourceFormSet(
            request.POST, request.FILES, prefix="resources", queryset=ElecteeResource.objects.filter(term=term)
        )
        if formset.is_valid():
            instances = formset.save(commit=False)
            for instance in instances:
                instance.term = term
                instance.save()
            request.session["success_message"] = "Electee resources updated successfully"
            return redirect("electees:view_electee_groups")
        else:
            request.session["error_message"] = "Form is invalid. Please correct the noted errors."
    else:
        formset = ResourceFormSet(prefix="resources", queryset=ElecteeResource.objects.filter(term=term))
    template = loader.get_template("generic_formset.html")
    context_dict = {
        "formset": formset,
        "prefix": "resources",
        "has_files": True,
        "submit_name": "Update Electee Resources",
        "form_title": "Update/Add/Remove Electee Resources for %s" % (unicode(term)),
        "help_text": "These are the full packets and their constituent parts. If you need a part that isn't listed here, contact the web chair.",
        "can_add_row": True,
        "base": "electees/base_electees.html",
    }
    context_dict.update(get_common_context(request))
    context_dict.update(get_permissions(request.user))
    context = RequestContext(request, context_dict)
    return HttpResponse(template.render(context))
Exemple #27
0
def leadership(request):
    return leadership_for_term(request,get_current_term().id)
Exemple #28
0
def get_current_group_leaders():
    current_electee_groups = ElecteeGroup.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(electee_group_leaders__in = current_electee_groups).distinct()
Exemple #29
0
def get_current_event_leaders():
    current_events = CalendarEvent.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(event_leader__in = current_events).distinct()
 def handle(self, *args, **options):
     e_groups = ElecteeGroup.objects.filter(term=get_current_term())
     for group in e_groups:
         group.get_points()
Exemple #31
0
def get_current_event_leaders():
    current_events = CalendarEvent.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(event_leader__in=current_events).distinct()
Exemple #32
0
def get_current_group_leaders():
    current_electee_groups = ElecteeGroup.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(electee_group_leaders__in=current_electee_groups).distinct()
Exemple #33
0
def get_current_officers():
    current_officers = Officer.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(officer__in = current_officers).distinct()
Exemple #34
0
def get_current_officers():
    current_officers = Officer.objects.filter(term=get_current_term())
    return MemberProfile.objects.filter(officer__in=current_officers).distinct()
Exemple #35
0
def get_unassigned_electees():
    current_electee_groups = ElecteeGroup.objects.filter(term=get_current_term())
    current_electees = get_electees()
    for group in current_electee_groups.all():
        current_electees=current_electees.exclude(pk__in=group.members.all())
    return current_electees.order_by('standing','last_name')
 def handle(self,*args,**options):
     e_groups = ElecteeGroup.objects.filter(term=get_current_term())
     for group in e_groups:
         group.get_points()