コード例 #1
0
ファイル: views.py プロジェクト: leobalter/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User,
                             userprofile__display_name__iexact=display_name)
    usergroups = user.groups.filter(Q(name='Mentor')|Q(name='Council'))

    data = {'pageuser': user,
            'user_profile': user.userprofile,
            'added_by': user.userprofile.added_by,
            'mentor': user.userprofile.mentor,
            'usergroups': usergroups}

    if user.groups.filter(name='Rep').exists():
        today = date.today()
        if (request.user.groups.filter(name='Admin').exists() or
            (request.user.is_authenticated() and
             user in request.user.mentees.all()) or
            user == request.user):
            reports = get_reports_for_year(user, start_year=2011,
                                           end_year=today.year, private=False)
        else:
            reports = get_reports_for_year(user, start_year=2011,
                                           end_year=today.year, private=True)

        data['monthly_reports'] = reports

    return render(request, 'profiles_view.html', data)
コード例 #2
0
ファイル: views.py プロジェクト: bensternthal/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User, userprofile__display_name__iexact=display_name)
    usergroups = user.groups.filter(Q(name="Mentor") | Q(name="Council"))

    data = {
        "pageuser": user,
        "user_profile": user.userprofile,
        "added_by": user.userprofile.added_by,
        "mentor": user.userprofile.mentor,
        "usergroups": usergroups,
    }

    if user.groups.filter(name="Rep").exists():
        today = date.today()
        if (
            request.user.groups.filter(name="Admin").exists()
            or (request.user.is_authenticated() and user in request.user.mentees.all())
            or user == request.user
        ):
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["owner"]
            )
        elif request.user.is_authenticated():
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["authenticated"]
            )
        else:
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["anonymous"]
            )

        data["monthly_reports"] = reports

    return render(request, "profiles_view.html", data)
コード例 #3
0
ファイル: views.py プロジェクト: prameet-jain/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User,
                             userprofile__display_name__iexact=display_name)
    if not user.groups.filter(name='Rep').exists():
        raise Http404

    if (not user.userprofile.registration_complete
            and not request.user.has_perm('profiles.can_edit_profiles')):
        raise Http404

    usergroups = user.groups.filter(Q(name='Mentor') | Q(name='Council'))
    data = {
        'pageuser': user,
        'user_profile': user.userprofile,
        'added_by': user.userprofile.added_by,
        'mentor': user.userprofile.mentor,
        'usergroups': usergroups
    }

    today = datetime.utcnow().date()

    # Enable NGReports if waffle flag is active
    if waffle.flag_is_active(request, 'reports_ng_report'):
        data['ng_reports'] = (user.ng_reports.filter(
            report_date__lte=today).order_by('-report_date'))

    if ((request.user.is_authenticated()
         and user in request.user.mentees.all()) or user == request.user):
        reports = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])
    elif request.user.is_authenticated():
        reports = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['authenticated'])
    else:
        reports = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['anonymous'])
    data['monthly_reports'] = reports

    past_user_events = get_events_for_user(user, to_date=today)

    data['future_events'] = get_events_for_user(user, from_date=today)
    data['past_events'] = past_user_events.reverse()[:10]
    data['featured_rep'] = FeaturedRep.objects.filter(user=user)

    return render(request, 'profiles_view.html', data)
コード例 #4
0
ファイル: views.py プロジェクト: prameet-jain/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User,
                             userprofile__display_name__iexact=display_name)
    if not user.groups.filter(name='Rep').exists():
        raise Http404

    if (not user.userprofile.registration_complete and
            not request.user.has_perm('profiles.can_edit_profiles')):
            raise Http404

    usergroups = user.groups.filter(Q(name='Mentor') | Q(name='Council'))
    data = {'pageuser': user,
            'user_profile': user.userprofile,
            'added_by': user.userprofile.added_by,
            'mentor': user.userprofile.mentor,
            'usergroups': usergroups}

    today = datetime.utcnow().date()

    # Enable NGReports if waffle flag is active
    if waffle.flag_is_active(request, 'reports_ng_report'):
        data['ng_reports'] = (user.ng_reports
                              .filter(report_date__lte=today)
                              .order_by('-report_date'))

    if ((request.user.is_authenticated() and
         user in request.user.mentees.all()) or
            user == request.user):
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])
    elif request.user.is_authenticated():
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['authenticated'])
    else:
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['anonymous'])
    data['monthly_reports'] = reports

    past_user_events = get_events_for_user(user, to_date=today)

    data['future_events'] = get_events_for_user(user, from_date=today)
    data['past_events'] = past_user_events.reverse()[:10]
    data['featured_rep'] = FeaturedRep.objects.filter(user=user)

    return render(request, 'profiles_view.html', data)
コード例 #5
0
ファイル: views.py プロジェクト: hoosteeno/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User, userprofile__display_name__iexact=display_name)
    if not user.groups.filter(name="Rep").exists():
        raise Http404

    if not user.userprofile.registration_complete and not request.user.has_perm("profiles.can_edit_profiles"):
        raise Http404

    usergroups = user.groups.filter(Q(name="Mentor") | Q(name="Council"))
    data = {
        "pageuser": user,
        "user_profile": user.userprofile,
        "added_by": user.userprofile.added_by,
        "mentor": user.userprofile.mentor,
        "usergroups": usergroups,
    }

    today = datetime.utcnow().date()

    # Enable NGReports if waffle flag is active
    if waffle.flag_is_active(request, "reports_ng_report"):
        data["ng_reports"] = user.ng_reports.filter(report_date__lte=today).order_by("-report_date")

    if (request.user.is_authenticated() and user in request.user.mentees.all()) or user == request.user:
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["owner"]
        )
    elif request.user.is_authenticated():
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["authenticated"]
        )
    else:
        reports = get_reports_for_year(
            user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["anonymous"]
        )
    data["monthly_reports"] = reports

    past_user_events = get_events_for_user(user, to_date=today)

    data["future_events"] = get_events_for_user(user, from_date=today)
    data["past_events"] = past_user_events.reverse()[:10]
    data["featured_rep"] = FeaturedRep.objects.filter(user=user)

    return render(request, "profiles_view.html", data)
コード例 #6
0
ファイル: views.py プロジェクト: AshishNamdev/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User,
                             userprofile__display_name__iexact=display_name)
    usergroups = user.groups.filter(Q(name='Mentor')|Q(name='Council'))

    if (not user.userprofile.registration_complete and
        not request.user.has_perm('profiles.can_edit_profiles')):
            raise Http404

    data = {'pageuser': user,
            'user_profile': user.userprofile,
            'added_by': user.userprofile.added_by,
            'mentor': user.userprofile.mentor,
            'usergroups': usergroups}

    if user.groups.filter(name='Rep').exists():
        today = date.today()
        if (request.user.groups.filter(name='Admin').exists() or
            (request.user.is_authenticated() and
             user in request.user.mentees.all()) or
            user == request.user):
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['owner'])
        elif request.user.is_authenticated():
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['authenticated'])
        else:
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['anonymous'])

        data['monthly_reports'] = reports

    today = date.today()
    data['future_events'] = get_events_for_user(user, from_date=today)
    data['past_events'] = get_events_for_user(user, to_date=today)[:10]

    return render(request, 'profiles_view.html', data)
コード例 #7
0
ファイル: views.py プロジェクト: shollmann/remo
def view_profile(request, display_name):
    """View user profile."""
    user = get_object_or_404(User,
                             userprofile__display_name__iexact=display_name)
    usergroups = user.groups.filter(Q(name='Mentor')|Q(name='Council'))

    if (not user.userprofile.registration_complete and
        not request.user.has_perm('profiles.can_edit_profiles')):
            raise Http404

    data = {'pageuser': user,
            'user_profile': user.userprofile,
            'added_by': user.userprofile.added_by,
            'mentor': user.userprofile.mentor,
            'usergroups': usergroups}

    if user.groups.filter(name='Rep').exists():
        today = date.today()
        if (request.user.groups.filter(name='Admin').exists() or
            (request.user.is_authenticated() and
             user in request.user.mentees.all()) or
            user == request.user):
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['owner'])
        elif request.user.is_authenticated():
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['authenticated'])
        else:
            reports = get_reports_for_year(
                user, start_year=2011, end_year=today.year,
                permission=REPORTS_PERMISSION_LEVEL['anonymous'])

        data['monthly_reports'] = reports

    today = date.today()
    data['future_events'] = get_events_for_user(user, from_date=today)
    data['past_events'] = get_events_for_user(user, to_date=today)[:10]

    return render(request, 'profiles_view.html', data)
コード例 #8
0
ファイル: test_util.py プロジェクト: stephendonner/remo
    def test_get_reports_public(self):
        """Test get reports utility."""
        user = User.objects.get(username="******")
        reports = get_reports_for_year(user, start_year=2011, end_year=2012)

        eq_(reports[2011], None)
        eq_(len(reports[2012]), 12)
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
        for i in range(2, 12):
            self.assertIsNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'unavailable')
コード例 #9
0
    def test_get_reports_anonymous(self):
        """Test get reports utility as anonymous."""
        user = User.objects.get(username="******")
        reports = get_reports_for_year(user, start_year=2011, end_year=2012)

        eq_(len(reports[2011]), 12)
        for i in range(0, 12):
            eq_(reports[2011][i]['report'], None)
        eq_(len(reports[2012]), 12)
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
        for i in range(2, 12):
            self.assertIsNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'unavailable')
コード例 #10
0
ファイル: test_util.py プロジェクト: josephbosire/remo
    def test_get_reports_anonymous(self):
        """Test get reports utility as anonymous."""
        reports = get_reports_for_year(self.user,
                                       start_year=2011,
                                       end_year=2012)

        eq_(len(reports[2011]), 12)
        for i in range(0, 12):
            eq_(reports[2011][i]['report'], None)
        eq_(len(reports[2012]), 12)
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
        for i in range(2, 12):
            self.assertIsNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'unavailable')
コード例 #11
0
ファイル: test_util.py プロジェクト: josephbosire/remo
    def test_get_reports_owner(self):
        """Test get reports utility as owner."""
        reports = get_reports_for_year(
            self.user, start_year=2011, end_year=2012,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

        eq_(len(reports[2011]), 12)
        eq_(len(reports[2012]), 12)
        for i in range(0, 1):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'unavailable')
        for i in range(1, 12):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'editable')
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
コード例 #12
0
ファイル: test_util.py プロジェクト: leobalter/remo
    def test_get_reports_private(self):
        """Test get reports utility private mode."""
        user = User.objects.get(username="******")
        reports = get_reports_for_year(user, start_year=2011, end_year=2012,
                                       private=False)

        eq_(len(reports[2011]), 12)
        eq_(len(reports[2012]), 12)
        for i in range(0, 7):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'unavailable')
        for i in range(7, 12):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'editable')
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
コード例 #13
0
    def test_get_reports_owner(self):
        """Test get reports utility as owner."""
        reports = get_reports_for_year(
            self.user,
            start_year=2011,
            end_year=2012,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

        eq_(len(reports[2011]), 12)
        eq_(len(reports[2012]), 12)
        for i in range(0, 1):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'unavailable')
        for i in range(1, 12):
            self.assertIsNone(reports[2011][i]['report'])
            eq_(reports[2011][i]['class'], 'editable')
        for i in range(0, 2):
            self.assertIsNotNone(reports[2012][i]['report'])
            eq_(reports[2012][i]['class'], 'exists')
コード例 #14
0
ファイル: views.py プロジェクト: hoosteeno/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name="Mozillians").exists():
        return dashboard_mozillians(request, user)

    # Reps block
    q_closed = Q(status="RESOLVED") | Q(status="VERIFIED")
    budget_requests = Bug.objects.filter(component="Budget Requests").exclude(q_closed)
    swag_requests = Bug.objects.filter(component="Swag Requests").exclude(q_closed)
    mentorship_requests = Bug.objects.filter(component="Mentorship").exclude(q_closed)
    cit_requests = Bug.objects.filter(component="Community IT Requests").exclude(q_closed)
    planning_requests = Bug.objects.filter(component="Planning").exclude(q_closed)

    today = date.today()
    # NG Reports
    if waffle.flag_is_active(request, "reports_ng_report"):
        if user.groups.filter(name="Rep").exists():
            args["ng_reports"] = user.ng_reports.filter(report_date__lte=today).order_by("-report_date")
            args["today"] = utc_now()

        if user.groups.filter(name="Mentor").exists():
            args["mentees_ng_reportees"] = User.objects.filter(
                ng_reports__isnull=False, ng_reports__mentor=user
            ).distinct()

        if user.groups.filter(Q(name="Admin") | Q(name="Council")).exists():
            args["all_ng_reportees"] = User.objects.filter(ng_reports__isnull=False).distinct()

    # Old reporting system and dashboard data
    if user.groups.filter(name="Rep").exists():
        args["monthly_reports"] = get_reports_for_year(
            user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["owner"]
        )

    my_q = Q(cc=user) | Q(creator=user)
    my_q_assigned = my_q | Q(assigned_to=user)
    my_mentees = User.objects.filter(userprofile__mentor=user, userprofile__registration_complete=True)

    args["my_budget_requests"] = budget_requests.filter(my_q).distinct()
    args["my_swag_requests"] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name="Mentor").exists():
        args["mentees_budget_requests"] = budget_requests.filter(creator__in=my_mentees).distinct()
        args["mentees_swag_requests"] = swag_requests.filter(creator__in=my_mentees).distinct()
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by("whiteboard")
        args["my_mentorship_requests"] = my_mentorship_requests.distinct()
        args["mentees_reports_list"] = Report.objects.filter(mentor=user).order_by("-created_on").distinct()[:20]
        args["mentees_reports_grid"] = get_mentee_reports_for_month(user)
        args["mentees_emails"] = my_mentees.values_list("first_name", "last_name", "email") or None
        args["email_mentees_form"] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name="Admin") | Q(name="Council")).exists():
        args["all_budget_requests"] = budget_requests.all()[:20]
        args["all_swag_requests"] = swag_requests.all()[:20]
        args["my_cit_requests"] = cit_requests
        args["my_planning_requests"] = planning_requests
        args["all_reports"] = Report.objects.all().order_by("-created_on")[:20]
    else:
        args["my_planning_requests"] = planning_requests.filter(my_q_assigned).distinct()

    if user.groups.filter(name="Admin").exists():
        args["is_admin"] = True
        reps = User.objects.filter(groups__name="Rep")
        args["reps_without_mentors"] = reps.filter(userprofile__registration_complete=True, userprofile__mentor=None)
        args["reps_without_profile"] = reps.filter(userprofile__registration_complete=False)

    return render(request, "dashboard_reps.html", args)
コード例 #15
0
ファイル: views.py プロジェクト: shollmann/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}
    q_closed = Q(status='RESOLVED')| Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(component='Budget Requests').
                       exclude(q_closed))
    swag_requests = (Bug.objects.filter(component='Swag Requests').
                     exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(component='Mentorship').
                           exclude(q_closed))
    cit_requests = (Bug.objects.filter(component='Community IT Requests').
                    exclude(q_closed))
    planning_requests = (Bug.objects.filter(component='Planning').
                         exclude(q_closed))

    today = date.today()
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.
                                           filter(creator__in=my_mentees).
                                           distinct())
        args['mentees_swag_requests'] = (swag_requests.
                                         filter(creator__in=my_mentees).
                                         distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(mentor=user).
                                        order_by('-created_on').
                                        distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (
            my_mentees.values_list('first_name', 'last_name', 'email') or
            None)
        args['email_mentees_form'] = EmailMenteesForm(
            initial={'email_of_mentor': user.email})

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = Report.objects.all().order_by('-created_on')[:20]
    else:
        args['my_planning_requests'] = (planning_requests.
                                        filter(my_q_assigned).
                                        distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard.html', args)
コード例 #16
0
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name='Mozillians').exists():
        return dashboard_mozillians(request, user)

    # Reps block
    q_closed = Q(status='RESOLVED') | Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(
        component='Budget Requests').exclude(q_closed))
    swag_requests = (Bug.objects.filter(
        component='Swag Requests').exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(
        component='Mentorship').exclude(q_closed))
    cit_requests = (Bug.objects.filter(
        component='Community IT Requests').exclude(q_closed))
    planning_requests = (Bug.objects.filter(
        component='Planning').exclude(q_closed))

    today = date.today()
    # NG Reports
    if waffle.flag_is_active(request, 'reports_ng_report'):
        if user.groups.filter(name='Rep').exists():
            args['ng_reports'] = (user.ng_reports.filter(
                report_date__lte=today).order_by('-report_date'))
            args['today'] = utc_now()

        if user.groups.filter(name='Mentor').exists():
            args['mentees_ng_reportees'] = User.objects.filter(
                ng_reports__isnull=False, ng_reports__mentor=user).distinct()

        if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
            args['all_ng_reportees'] = User.objects.filter(
                ng_reports__isnull=False).distinct()

    # Old reporting system and dashboard data
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user,
                                     userprofile__registration_complete=True)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.filter(
            creator__in=my_mentees).distinct())
        args['mentees_swag_requests'] = (swag_requests.filter(
            creator__in=my_mentees).distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(
            mentor=user).order_by('-created_on').distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (my_mentees.values_list(
            'first_name', 'last_name', 'email') or None)
        args['email_mentees_form'] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = (
            Report.objects.all().order_by('-created_on')[:20])
    else:
        args['my_planning_requests'] = (
            planning_requests.filter(my_q_assigned).distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard_reps.html', args)
コード例 #17
0
ファイル: views.py プロジェクト: leobalter/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    budget_requests = Bug.objects.filter(component='Budget Requests')
    budget_requests = budget_requests.exclude(status='RESOLVED')
    swag_requests = Bug.objects.filter(component='Swag Requests')
    swag_requests = swag_requests.exclude(status='RESOLVED')
    mentorship_requests = Bug.objects.filter(component='Mentorship')
    mentorship_requests = mentorship_requests.exclude(status='RESOLVED')
    cit_requests = Bug.objects.filter(component='Community IT Requests')
    cit_requests = cit_requests.exclude(status='RESOLVED')
    planning_requests = Bug.objects.filter(component='Planning')
    planning_requests = planning_requests.exclude(status='RESOLVED')

    today = date.today()
    monthly_reports = get_reports_for_year(user, start_year=2011,
                                           end_year=today.year,
                                           private=False)

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user)

    my_budget_requests = budget_requests.filter(my_q)
    my_swag_requests = swag_requests.filter(my_q)

    if user.groups.filter(name='Mentor').exists():
        mentees_budget_requests = (budget_requests.
                                   filter(creator__in=my_mentees))
        mentees_swag_requests = swag_requests.filter(creator__in=my_mentees)
        my_mentorship_requests = mentorship_requests.filter(my_q)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        mentees_reports_list = (Report.objects.filter(mentor=user).
                                order_by('-created_on')[:20])
        mentees_reports_grid = get_mentee_reports_for_month(user)

    else:
        mentees_budget_requests = None
        mentees_swag_requests = None
        my_mentorship_requests = None
        mentees_reports_list = None
        mentees_reports_grid = None

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        all_budget_requests = budget_requests.all()[:20]
        all_swag_requests = swag_requests.all()[:20]
        my_cit_requests = cit_requests
        my_planning_requests = planning_requests
        all_reports = Report.objects.all().order_by('-created_on')[:20]
    else:
        all_budget_requests = None
        all_swag_requests = None
        my_cit_requests = None
        my_planning_requests = planning_requests.filter(my_q_assigned)
        all_reports = None

    if user.groups.filter(name='Admin').exists():
        reps = User.objects.filter(groups__name="Rep")
        reps_without_mentors = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        reps_without_profile = reps.filter(
            userprofile__registration_complete=False)
    else:
        reps_without_mentors = None
        reps_without_profile = None

    return render(request, 'dashboard.html',
                  {'my_budget_requests': my_budget_requests,
                   'mentees_budget_requests': mentees_budget_requests,
                   'all_budget_requests': all_budget_requests,
                   'my_swag_requests': my_swag_requests,
                   'mentees_swag_requests': mentees_swag_requests,
                   'all_swag_requests': all_swag_requests,
                   'my_cit_requests': my_cit_requests,
                   'my_mentorship_requests': my_mentorship_requests,
                   'my_planning_requests': my_planning_requests,
                   'reps_without_profile': reps_without_profile,
                   'reps_without_mentors': reps_without_mentors,
                   'monthly_reports': monthly_reports,
                   'mentees_reports_list': mentees_reports_list,
                   'mentees_reports_grid': mentees_reports_grid,
                   'all_reports': all_reports})
コード例 #18
0
ファイル: views.py プロジェクト: smillaedler/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name="Mozillians").exists():
        user_profile = user.userprofile
        interestform = forms.TrackFunctionalAreasForm(request.POST or None, instance=user_profile)
        reps_email_form = forms.EmailRepsForm(request.POST or None)
        if interestform.is_valid():
            interestform.save()
            messages.success(request, "Interests successfully saved")
            return redirect("dashboard")
        if reps_email_form.is_valid():
            functional_area = reps_email_form.cleaned_data["functional_area"]
            reps = User.objects.filter(groups__name="Rep").filter(userprofile__functional_areas__name=functional_area)
            reps_email_form.send_email(request, reps)
            return redirect("dashboard")

        # Get the reps who match the specified interests
        interests = user.userprofile.tracked_functional_areas.all()
        tracked_interests = {}
        reps_reports = {}
        reps_past_events = {}
        reps_current_events = {}
        now = datetime.now()
        for interest in interests:
            # Get the Reps with the specified interest
            reps = User.objects.filter(groups__name="Rep").filter(userprofile__functional_areas=interest)
            tracked_interests[interest] = reps
            # Get the reports of the Reps with the specified interest
            reps_reports[interest] = Report.objects.filter(user__in=reps).order_by("created_on")[:20]
            # Get the events with the specified category
            events = Event.objects.filter(categories=interest)
            reps_past_events[interest] = events.filter(start__lt=now)[:50]
            reps_current_events[interest] = events.filter(start__gt=now)
        args["interestform"] = interestform
        args["reps_reports"] = reps_reports
        args["reps_past_events"] = reps_past_events
        args["reps_current_events"] = reps_current_events
        args["tracked_interests"] = tracked_interests
        args["reps_email_form"] = reps_email_form
        return render(request, "dashboard_mozillians.html", args)

    # Reps block
    q_closed = Q(status="RESOLVED") | Q(status="VERIFIED")
    budget_requests = Bug.objects.filter(component="Budget Requests").exclude(q_closed)
    swag_requests = Bug.objects.filter(component="Swag Requests").exclude(q_closed)
    mentorship_requests = Bug.objects.filter(component="Mentorship").exclude(q_closed)
    cit_requests = Bug.objects.filter(component="Community IT Requests").exclude(q_closed)
    planning_requests = Bug.objects.filter(component="Planning").exclude(q_closed)

    today = date.today()
    if user.groups.filter(name="Rep").exists():
        args["monthly_reports"] = get_reports_for_year(
            user, start_year=2011, end_year=today.year, permission=REPORTS_PERMISSION_LEVEL["owner"]
        )

    my_q = Q(cc=user) | Q(creator=user)
    my_q_assigned = my_q | Q(assigned_to=user)
    my_mentees = User.objects.filter(userprofile__mentor=user, userprofile__registration_complete=True)

    args["my_budget_requests"] = budget_requests.filter(my_q).distinct()
    args["my_swag_requests"] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name="Mentor").exists():
        args["mentees_budget_requests"] = budget_requests.filter(creator__in=my_mentees).distinct()
        args["mentees_swag_requests"] = swag_requests.filter(creator__in=my_mentees).distinct()
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by("whiteboard")
        args["my_mentorship_requests"] = my_mentorship_requests.distinct()
        args["mentees_reports_list"] = Report.objects.filter(mentor=user).order_by("-created_on").distinct()[:20]
        args["mentees_reports_grid"] = get_mentee_reports_for_month(user)
        args["mentees_emails"] = my_mentees.values_list("first_name", "last_name", "email") or None
        args["email_mentees_form"] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name="Admin") | Q(name="Council")).exists():
        args["all_budget_requests"] = budget_requests.all()[:20]
        args["all_swag_requests"] = swag_requests.all()[:20]
        args["my_cit_requests"] = cit_requests
        args["my_planning_requests"] = planning_requests
        args["all_reports"] = Report.objects.all().order_by("-created_on")[:20]
    else:
        args["my_planning_requests"] = planning_requests.filter(my_q_assigned).distinct()

    if user.groups.filter(name="Admin").exists():
        args["is_admin"] = True
        reps = User.objects.filter(groups__name="Rep")
        args["reps_without_mentors"] = reps.filter(userprofile__registration_complete=True, userprofile__mentor=None)
        args["reps_without_profile"] = reps.filter(userprofile__registration_complete=False)

    return render(request, "dashboard_reps.html", args)
コード例 #19
0
ファイル: views.py プロジェクト: craigcook/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name='Mozillians').exists():
        user_profile = user.userprofile
        interestform = forms.TrackFunctionalAreasForm(request.POST or None,
                                                      instance=user_profile)
        reps_email_form = forms.EmailRepsForm(request.POST or None)
        if interestform.is_valid():
            interestform.save()
            messages.success(request, 'Interests successfully saved')
            return redirect('dashboard')
        if reps_email_form.is_valid():
            functional_area = reps_email_form.cleaned_data['functional_area']
            reps = (User.objects
                    .filter(groups__name='Rep')
                    .filter(userprofile__functional_areas=functional_area))
            reps_email_form.send_email(request, reps)
            return redirect('dashboard')

        # Get the reps who match the specified interests
        interests = user.userprofile.tracked_functional_areas.all()
        tracked_interests = {}
        reps_reports = {}
        reps_past_events = {}
        reps_current_events = {}
        now = datetime.now()
        for interest in interests:
            # Get the Reps with the specified interest
            reps = User.objects.filter(groups__name='Rep').filter(
                userprofile__functional_areas=interest)
            tracked_interests[interest.name] = {
                'id': interest.id, 'reps': reps}
            # Get the reports of the Reps with the specified interest
            reps_reports[interest.name] = Report.objects.filter(
                user__in=reps).order_by('created_on')[:20]
            # Get the events with the specified category
            events = Event.objects.filter(categories=interest)
            reps_past_events[interest.name] = events.filter(start__lt=now)[:50]
            reps_current_events[interest.name] = events.filter(start__gte=now)
        args['interestform'] = interestform
        args['reps_reports'] = reps_reports
        args['reps_past_events'] = reps_past_events
        args['reps_current_events'] = reps_current_events
        args['tracked_interests'] = tracked_interests
        args['reps_email_form'] = reps_email_form
        return render(request, 'dashboard_mozillians.html', args)

    # Reps block
    q_closed = Q(status='RESOLVED') | Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(component='Budget Requests').
                       exclude(q_closed))
    swag_requests = (Bug.objects.filter(component='Swag Requests').
                     exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(component='Mentorship').
                           exclude(q_closed))
    cit_requests = (Bug.objects.filter(component='Community IT Requests').
                    exclude(q_closed))
    planning_requests = (Bug.objects.filter(component='Planning').
                         exclude(q_closed))

    today = date.today()
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user,
                                     userprofile__registration_complete=True)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.
                                           filter(creator__in=my_mentees).
                                           distinct())
        args['mentees_swag_requests'] = (swag_requests.
                                         filter(creator__in=my_mentees).
                                         distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(mentor=user).
                                        order_by('-created_on').
                                        distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (
            my_mentees.values_list('first_name', 'last_name', 'email') or
            None)
        args['email_mentees_form'] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = Report.objects.all().order_by('-created_on')[:20]
    else:
        args['my_planning_requests'] = (planning_requests.
                                        filter(my_q_assigned).
                                        distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard_reps.html', args)
コード例 #20
0
ファイル: views.py プロジェクト: prameet-jain/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name='Mozillians').exists():
        return dashboard_mozillians(request, user)

    # Reps block
    q_closed = Q(status='RESOLVED') | Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(component='Budget Requests').
                       exclude(q_closed))
    swag_requests = (Bug.objects.filter(component='Swag Requests').
                     exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(component='Mentorship').
                           exclude(q_closed))
    cit_requests = (Bug.objects.filter(component='Community IT Requests').
                    exclude(q_closed))
    planning_requests = (Bug.objects.filter(component='Planning').
                         exclude(q_closed))

    today = date.today()
    # NG Reports
    if waffle.flag_is_active(request, 'reports_ng_report'):
        if user.groups.filter(name='Rep').exists():
            args['ng_reports'] = (user.ng_reports
                                  .filter(report_date__lte=today)
                                  .order_by('-report_date'))
            args['today'] = utc_now()

        if user.groups.filter(name='Mentor').exists():
            args['mentees_ng_reportees'] = User.objects.filter(
                ng_reports__isnull=False, ng_reports__mentor=user).distinct()

    # Old reporting system and dashboard data
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user, start_year=2011, end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user,
                                     userprofile__registration_complete=True)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.
                                           filter(creator__in=my_mentees).
                                           distinct())
        args['mentees_swag_requests'] = (swag_requests.
                                         filter(creator__in=my_mentees).
                                         distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(mentor=user).
                                        order_by('-created_on').
                                        distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (
            my_mentees.values_list('first_name', 'last_name', 'email') or
            None)
        args['email_mentees_form'] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = (Report.objects.all()
                               .order_by('-created_on')[:20])
    else:
        args['my_planning_requests'] = (planning_requests.
                                        filter(my_q_assigned).
                                        distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard_reps.html', args)
コード例 #21
0
ファイル: views.py プロジェクト: craigcook/remo
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}

    # Mozillians block
    if user.groups.filter(name='Mozillians').exists():
        user_profile = user.userprofile
        interestform = forms.TrackFunctionalAreasForm(request.POST or None,
                                                      instance=user_profile)
        reps_email_form = forms.EmailRepsForm(request.POST or None)
        if interestform.is_valid():
            interestform.save()
            messages.success(request, 'Interests successfully saved')
            return redirect('dashboard')
        if reps_email_form.is_valid():
            functional_area = reps_email_form.cleaned_data['functional_area']
            reps = (User.objects.filter(groups__name='Rep').filter(
                userprofile__functional_areas=functional_area))
            reps_email_form.send_email(request, reps)
            return redirect('dashboard')

        # Get the reps who match the specified interests
        interests = user.userprofile.tracked_functional_areas.all()
        tracked_interests = {}
        reps_reports = {}
        reps_past_events = {}
        reps_current_events = {}
        now = datetime.now()
        for interest in interests:
            # Get the Reps with the specified interest
            reps = User.objects.filter(groups__name='Rep').filter(
                userprofile__functional_areas=interest)
            tracked_interests[interest.name] = {
                'id': interest.id,
                'reps': reps
            }
            # Get the reports of the Reps with the specified interest
            reps_reports[interest.name] = Report.objects.filter(
                user__in=reps).order_by('created_on')[:20]
            # Get the events with the specified category
            events = Event.objects.filter(categories=interest)
            reps_past_events[interest.name] = events.filter(start__lt=now)[:50]
            reps_current_events[interest.name] = events.filter(start__gte=now)
        args['interestform'] = interestform
        args['reps_reports'] = reps_reports
        args['reps_past_events'] = reps_past_events
        args['reps_current_events'] = reps_current_events
        args['tracked_interests'] = tracked_interests
        args['reps_email_form'] = reps_email_form
        return render(request, 'dashboard_mozillians.html', args)

    # Reps block
    q_closed = Q(status='RESOLVED') | Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(
        component='Budget Requests').exclude(q_closed))
    swag_requests = (Bug.objects.filter(
        component='Swag Requests').exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(
        component='Mentorship').exclude(q_closed))
    cit_requests = (Bug.objects.filter(
        component='Community IT Requests').exclude(q_closed))
    planning_requests = (Bug.objects.filter(
        component='Planning').exclude(q_closed))

    today = date.today()
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user,
                                     userprofile__registration_complete=True)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.filter(
            creator__in=my_mentees).distinct())
        args['mentees_swag_requests'] = (swag_requests.filter(
            creator__in=my_mentees).distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(
            mentor=user).order_by('-created_on').distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (my_mentees.values_list(
            'first_name', 'last_name', 'email') or None)
        args['email_mentees_form'] = forms.EmailUsersForm(my_mentees)

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = Report.objects.all().order_by('-created_on')[:20]
    else:
        args['my_planning_requests'] = (
            planning_requests.filter(my_q_assigned).distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard_reps.html', args)
コード例 #22
0
def dashboard(request):
    """Dashboard view."""
    user = request.user
    args = {}
    q_closed = Q(status='RESOLVED') | Q(status='VERIFIED')
    budget_requests = (Bug.objects.filter(
        component='Budget Requests').exclude(q_closed))
    swag_requests = (Bug.objects.filter(
        component='Swag Requests').exclude(q_closed))
    mentorship_requests = (Bug.objects.filter(
        component='Mentorship').exclude(q_closed))
    cit_requests = (Bug.objects.filter(
        component='Community IT Requests').exclude(q_closed))
    planning_requests = (Bug.objects.filter(
        component='Planning').exclude(q_closed))

    today = date.today()
    if user.groups.filter(name='Rep').exists():
        args['monthly_reports'] = get_reports_for_year(
            user,
            start_year=2011,
            end_year=today.year,
            permission=REPORTS_PERMISSION_LEVEL['owner'])

    my_q = (Q(cc=user) | Q(creator=user))
    my_q_assigned = (my_q | Q(assigned_to=user))
    my_mentees = User.objects.filter(userprofile__mentor=user)

    args['my_budget_requests'] = budget_requests.filter(my_q).distinct()
    args['my_swag_requests'] = swag_requests.filter(my_q).distinct()

    if user.groups.filter(name='Mentor').exists():
        args['mentees_budget_requests'] = (budget_requests.filter(
            creator__in=my_mentees).distinct())
        args['mentees_swag_requests'] = (swag_requests.filter(
            creator__in=my_mentees).distinct())
        my_mentorship_requests = mentorship_requests.filter(my_q_assigned)
        my_mentorship_requests = my_mentorship_requests.order_by('whiteboard')
        args['my_mentorship_requests'] = my_mentorship_requests.distinct()
        args['mentees_reports_list'] = (Report.objects.filter(
            mentor=user).order_by('-created_on').distinct()[:20])
        args['mentees_reports_grid'] = get_mentee_reports_for_month(user)
        args['mentees_emails'] = (my_mentees.values_list(
            'first_name', 'last_name', 'email') or None)
        args['email_mentees_form'] = EmailMenteesForm(
            initial={'email_of_mentor': user.email})

    if user.groups.filter(Q(name='Admin') | Q(name='Council')).exists():
        args['all_budget_requests'] = budget_requests.all()[:20]
        args['all_swag_requests'] = swag_requests.all()[:20]
        args['my_cit_requests'] = cit_requests
        args['my_planning_requests'] = planning_requests
        args['all_reports'] = Report.objects.all().order_by('-created_on')[:20]
    else:
        args['my_planning_requests'] = (
            planning_requests.filter(my_q_assigned).distinct())

    if user.groups.filter(name='Admin').exists():
        args['is_admin'] = True
        reps = User.objects.filter(groups__name='Rep')
        args['reps_without_mentors'] = reps.filter(
            userprofile__registration_complete=True, userprofile__mentor=None)
        args['reps_without_profile'] = reps.filter(
            userprofile__registration_complete=False)

    return render(request, 'dashboard.html', args)