def lists_for_teachers(self): unit_qs = self.request.user.userprofile.get_unit_queryset() profile = self.request.user.userprofile return [ { 'color': self.HEADING_BLUE, 'type': 'Product', 'title': { 'text': _(u'Mine tilbud'), 'link': reverse('search') + '?u=-3' }, 'queryset': Product.objects.filter( eventtime__visit=profile.potentially_assigned_visits ).distinct().order_by("title"), }, { 'color': self.HEADING_RED, 'type': 'Visit', 'title': ungettext_lazy( u"%(count)d besøg der mangler undervisere", u"%(count)d besøg der mangler undervisere", 'count' ), 'queryset': Visit.unit_filter( profile.can_be_assigned_to_qs, unit_qs ).order_by( 'eventtime__start', 'eventtime__end' ) }, { 'color': self.HEADING_GREEN, 'type': 'Visit', 'title': ungettext_lazy( u"%(count)d besøg hvor jeg er underviser", u"%(count)d besøg hvor jeg er underviser", 'count' ), 'queryset': self.sort_vo_queryset( Visit.unit_filter( profile.all_assigned_visits(), unit_qs ) ) } ]
def lists_for_editors(self): visitlist = { 'color': self.HEADING_BLUE, 'type': 'Product', 'title': { 'text': ungettext_lazy( u'%(count)d tilbud i min enhed', u'%(count)d tilbud i min enhed', 'count' ), 'link': reverse('search') + '?u=-3' }, 'queryset': Product.objects.filter( organizationalunit=self.request.user .userprofile.get_unit_queryset() ).order_by("-statistics__created_time"), } if visitlist['queryset'].count() > 10: visitlist['limited_qs'] = visitlist['queryset'][:10] visitlist['button'] = { 'text': _(u'Søg i alle'), 'link': reverse('search') + '?u=-3' } unit_qs = self.request.user.userprofile.get_unit_queryset() unplanned = { 'color': self.HEADING_RED, 'type': 'Visit', 'title': ungettext_lazy( u"%(count)d besøg under planlægning", u"%(count)d besøg under planlægning", 'count' ), 'queryset': self.sort_vo_queryset( Visit.unit_filter( Visit.being_planned_queryset( is_multi_sub=False ), unit_qs ).annotate(num_participants=( Coalesce(Count("bookings__booker__pk"), 0) + Coalesce( Sum("bookings__booker__attendee_count"), 0 ) )).filter(num_participants__gte=1) # See also VisitSearchView.filter_by_participants ) } if unplanned['queryset'].count() > 10: unplanned['limited_qs'] = unplanned['queryset'][:10] unplanned['button'] = { 'text': _(u'Søg i alle'), 'link': reverse('visit-search') + '?u=-3&w=-1&go=1&p_min=1' } planned = { 'color': self.HEADING_GREEN, 'type': 'Visit', 'title': ungettext_lazy( u"%(count)d planlagt besøg", u"%(count)d planlagte besøg", 'count' ), 'queryset': self.sort_vo_queryset( Visit.unit_filter( Visit.planned_queryset( is_multi_sub=False ), unit_qs ) ) } if planned['queryset'].count() > 10: planned['limited_qs'] = planned['queryset'][:10] planned['button'] = { 'text': _(u'Søg i alle'), 'link': reverse('visit-search') + '?u=-3&w=-2&go=1' } return [visitlist, unplanned, planned]