def email_mentees(request): """Email my mentees view.""" if request.method == 'POST': my_mentees = User.objects.filter(userprofile__mentor=request.user) email_form = forms.EmailUsersForm(my_mentees, request.POST) if email_form.is_valid(): email_form.send_mail(request) else: messages.error(request, 'Email not sent. Invalid data.') return redirect('dashboard')
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)
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)
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 = now().date() # Post event metrics notifications owned_events = Event.objects.filter( owner=user, end__lt=now(), eventmetricoutcome__outcome__isnull=True, has_new_metrics=True).distinct() args['owned_events'] = owned_events # NG Reports if user.groups.filter(name='Rep').exists(): args['ng_reports'] = (user.ng_reports.filter( report_date__lte=today).order_by('-report_date')) args['today'] = now() # Dashboard data 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_ng_reportees'] = User.objects.filter( ng_reports__isnull=False, ng_reports__mentor=user).distinct() 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_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 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)