Beispiel #1
0
class ManageInterviewForm(Form):
    member = forms.ModelChoiceField(
        queryset=get_actives().order_by('last_name'))
    interview_type = forms.ModelChoiceField(
        queryset=EventCategory.objects.filter(
            parent_category__name='Conducted Interviews'))
    number_of_interviews = forms.IntegerField(min_value=0)
Beispiel #2
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))
Beispiel #3
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))
Beispiel #4
0
    def profiles_you_can_view(cls, user):
        if user.is_superuser:
            return get_members()
        current_positions = cls.get_current_officer_positions(user)
        query_all = Q(position__name="President") | Q(position__name="Vice President")
        query_actives = Q(position__name="Membership Officer")
        query_electees = Q(position__name="Graduate Student Coordinator")
        query_electee_groups = Q(leaders=user.userprofile.memberprofile) | Q(officers=user.userprofile.memberprofile)
        query_out = MemberProfile.objects.none()
        if current_positions:
            if current_positions.filter(query_all).exists():
                return get_members()
            if current_positions.filter(query_actives).exists():
                query_out = query_out | get_actives()
            if current_positions.filter(query_electees).exists():
                query_out = query_out | get_electees()

        electee_groups_led = ElecteeGroup.objects.filter(query_electee_groups)
        for electee_group in electee_groups_led:
            query_out = query_out | electee_group.members.all()

        return query_out
Beispiel #5
0
    def profiles_you_can_view(cls,user):
        if user.is_superuser:
            return get_members()
        current_positions = cls.get_current_officer_positions(user) 
        query_all = Q(position__name='President')|Q(position__name='Vice President')
        query_actives = Q(position__name='Membership Officer')
        query_electees= Q(position__name='Graduate Student Coordinator')
        query_electee_groups = Q(leaders=user.userprofile.memberprofile)|Q(officers=user.userprofile.memberprofile)
        query_out = MemberProfile.objects.none()
        if current_positions:
            if current_positions.filter(query_all).exists():
                return get_members()
            if current_positions.filter(query_actives).exists():
                query_out = query_out | get_actives()
            if current_positions.filter(query_electees).exists():
                query_out = query_out | get_electees()
        
        electee_groups_led = ElecteeGroup.objects.filter(query_electee_groups)
        for electee_group in electee_groups_led:
            query_out = query_out|electee_group.members.all()

        return query_out
Beispiel #6
0
class ManageActiveGroupMeetingsForm(Form):
    member = forms.ModelChoiceField(queryset=get_actives().filter(
        ~Q(electee_group_leaders=None, electee_group_officers=None)).distinct(
        ).order_by('last_name'))
    group_meetings = forms.IntegerField(min_value=0)