def membership_admin_menu_items(request, organization): members_url = url('membership_admin_members_view', organization.slug) members_active = request.path.startswith(members_url) members_text = 'Jäsenrekisteri' term_text = 'Toimikauden tiedot' current_term = organization.membership_organization_meta.get_current_term() base_term_url = url('membership_admin_new_term_view', organization.slug) term_active = request.path.startswith(base_term_url) if current_term: term_notifications = 0 term_url = url('membership_admin_term_view', organization.slug, current_term.pk) else: term_notifications = 1 term_url = base_term_url return [ AdminMenuItem(is_active=members_active, href=members_url, text=members_text), AdminMenuItem(is_active=term_active, href=term_url, text=term_text, notifications=term_notifications), ]
def enrollment_admin_menu_items(request, event): enrolled_url = url('enrollment_admin_view', event.slug) enrolled_active = request.path == enrolled_url enrolled_text = _('Enrolled people') special_diets_url = url('enrollment_admin_special_diets_view', event.slug) special_diets_active = request.path == special_diets_url special_diets_text = _('Special diets') return [ AdminMenuItem(is_active=enrolled_active, href=enrolled_url, text=enrolled_text), AdminMenuItem(is_active=special_diets_active, href=special_diets_url, text=special_diets_text), ]
def get_organizers_menu_item(request, event, may_be_active=True, notifications=0): organizers_url = url('intra_organizer_view', event.slug) organizers_active = may_be_active and request.path.startswith( organizers_url) organizers_text = _('Teams and organizers') return AdminMenuItem( is_active=organizers_active, href=organizers_url, text=organizers_text, notifications=notifications, )
def intra_organizer_menu_items(request, event, is_intra_admin=False): meta = event.intra_event_meta organizers_url = url('intra_organizer_view', event.slug) organizers_active = request.path.startswith(organizers_url) organizers_text = _('Teams and organizers') return [ AdminMenuItem( is_active=organizers_active, href=organizers_url, text=organizers_text, notifications=len(meta.unassigned_organizers) if is_intra_admin else 0, ), ]
def intra_admin_menu_items(request, event): meta = event.intra_event_meta privileges_url = url('intra_admin_privileges_view', event.slug) privileges_active = request.path.startswith(privileges_url) privileges_text = _('Privileges') other_menu_items = [ AdminMenuItem( is_active=privileges_active, href=privileges_url, text=privileges_text, ), ] return [ get_organizers_menu_item( request, event, may_be_active=not any(item.is_active for item in other_menu_items), notifications=len(meta.unassigned_organizers)), ] + other_menu_items
def programme_admin_menu_items(request, event): organizers_url = url('programme_admin_organizers_view', event.slug) organizers_active = request.path.startswith(organizers_url) organizers_text = _('Programme hosts') offers_url = url('programme_admin_view', event.slug) + '?state=offered&sort=created_at' offers_active = request.get_full_path() == offers_url offers_text = _('New offers') offers_notifications = Programme.objects.filter(category__event=event, state='offered').count() invitations_url = url('programme_admin_invitations_view', event.slug) invitations_active = request.path == invitations_url invitations_text = _('Open invitations') invitations_notifications = Invitation.objects.filter( programme__category__event=event, state='valid').count() rooms_url = url('programme_admin_rooms_view', event.slug) rooms_active = request.path.startswith(rooms_url) rooms_text = _('Edit rooms') schedule_url = url('programme_admin_schedule_view', event.slug) schedule_active = request.path.startswith(schedule_url) schedule_text = _('Edit schedule') special_url = url('programme_admin_special_view', event.slug) special_active = request.path == special_url special_text = 'Ohjelmakartan ulkopuolisten esikatselu' cold_offers_url = url('programme_admin_cold_offers_view', event.slug) cold_offers_active = request.path == cold_offers_url cold_offers_text = _('Cold offer period starting and ending times') publish_url = url('programme_admin_publish_view', event.slug) publish_active = request.path == publish_url publish_text = _('Publish schedule') feedback_url = url('programme_admin_feedback_view', event.slug) feedback_active = request.path == feedback_url feedback_text = _('Programme feedback') feedback_notifications = ProgrammeFeedback.objects.filter( programme__category__event=event, hidden_at__isnull=True).count() index_url = url('programme_admin_view', event.slug) index_active = request.path.startswith(index_url) and not any(( organizers_active, feedback_active, invitations_active, offers_active, cold_offers_active, publish_active, rooms_active, schedule_active, special_active, )) index_text = 'Ohjelmaluettelo' return [ AdminMenuItem(is_active=index_active, href=index_url, text=index_text), AdminMenuItem(is_active=organizers_active, href=organizers_url, text=organizers_text), AdminMenuItem(is_active=offers_active, href=offers_url, text=offers_text, notifications=offers_notifications), AdminMenuItem(is_active=invitations_active, href=invitations_url, text=invitations_text, notifications=invitations_notifications), AdminMenuItem(is_active=rooms_active, href=rooms_url, text=rooms_text), AdminMenuItem(is_active=schedule_active, href=schedule_url, text=schedule_text), AdminMenuItem(is_active=special_active, href=special_url, text=special_text), AdminMenuItem(is_active=cold_offers_active, href=cold_offers_url, text=cold_offers_text), AdminMenuItem(is_active=publish_active, href=publish_url, text=publish_text), AdminMenuItem(is_active=feedback_active, href=feedback_url, text=feedback_text, notifications=feedback_notifications), ]
def labour_admin_menu_items(request, event): dashboard_url = url('labour_admin_dashboard_view', event.slug) dashboard_active = request.path == dashboard_url dashboard_text = _("Dashboard") signups_url = url('labour_admin_signups_view', event.slug) signups_active = request.path.startswith(signups_url) signups_text = _("Applications") mail_url = url('labour_admin_mail_view', event.slug) mail_active = request.path.startswith(mail_url) mail_text = _("Mass messages") roster_url = url('labour_admin_roster_view', event.slug) roster_active = request.path.startswith(roster_url) roster_text = _("Shift planning") shifts_url = url('labour_admin_shifts_view', event.slug) shifts_active = request.path.startswith(shifts_url) shifts_text = _("Shift lists") jobcategories_url = url('labour_admin_jobcategories_view', event.slug) jobcategories_active = request.path.startswith(jobcategories_url) jobcategories_text = _("Edit job categories") startstop_url = url('labour_admin_startstop_view', event.slug) startstop_active = request.path == startstop_url startstop_text = _("Application period") menu_items = [ (dashboard_active, dashboard_url, dashboard_text), (signups_active, signups_url, signups_text), (mail_active, mail_url, mail_text), AdminMenuItem( is_active=roster_active, href=roster_url, text=roster_text, is_mobile_incompatible=True, ), AdminMenuItem( is_active=shifts_active, href=shifts_url, text=shifts_text, ), (jobcategories_active, jobcategories_url, jobcategories_text), (startstop_active, startstop_url, startstop_text), ] if event.labour_event_meta.signup_extra_model.get_shirt_size_field(): shirts_url = url('labour_admin_shirts_view', event.slug) shirts_active = request.path == shirts_url shirts_text = _("Shirt sizes") menu_items.append((shirts_active, shirts_url, shirts_text)) if (event.labour_event_meta.signup_extra_model.get_special_diet_field() or event.labour_event_meta.signup_extra_model. get_special_diet_other_field()): special_diets_url = url('labour_admin_special_diets_view', event.slug) special_diets_active = request.path == special_diets_url special_diets_text = _("Special diets") menu_items.append( (special_diets_active, special_diets_url, special_diets_text)) return menu_items