Example #1
0
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})
Example #2
0
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)
Example #3
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)
Example #4
0
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)
Example #5
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)
Example #6
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()

    # 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)
Example #7
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)
Example #8
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)
Example #9
0
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)