コード例 #1
0
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),
    ]
コード例 #2
0
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),
    ]
コード例 #3
0
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,
    )
コード例 #4
0
ファイル: menu_items.py プロジェクト: Siikakala/kompassi
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,
        ),
    ]
コード例 #5
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
コード例 #6
0
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),
    ]
コード例 #7
0
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