def programme_admin_menu_items(request, event):
    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()

    timetable_url = url('programme_admin_timetable_view', event.slug)
    timetable_active = request.path == timetable_url
    timetable_text = 'Ohjelmakartan esikatselu'

    special_url = url('programme_admin_special_view', event.slug)
    special_active = request.path == special_url
    special_text = 'Ohjelmakartan ulkopuolisten esikatselu'

    index_url = url('programme_admin_view', event.slug)
    index_active = request.path.startswith(index_url) and not any((
        invitations_active,
        timetable_active,
        special_active,
    ))
    index_text = 'Ohjelmaluettelo'

    return [
        AdminMenuItem(is_active=index_active, href=index_url, text=index_text),
        AdminMenuItem(is_active=invitations_active, href=invitations_url, text=invitations_text, notifications=invitations_notifications),
        AdminMenuItem(is_active=timetable_active, href=timetable_url, text=timetable_text),
        AdminMenuItem(is_active=special_active, href=special_url, text=special_text),
    ]
Esempio n. 2
0
def tickets_admin_menu_items(request, event):
    stats_url = url('tickets_admin_stats_view', event.slug)
    stats_active = request.path == stats_url
    stats_text = u"Myyntitilanne"

    orders_url = url('tickets_admin_orders_view', event.slug)
    orders_active = request.path.startswith(orders_url)
    orders_text = u"Tilaukset"

    batches_url = url('tickets_admin_batches_view', event.slug)
    batches_active = request.path.startswith(batches_url)
    batches_text = u"Toimituserät"

    tools_url = url('tickets_admin_tools_view', event.slug)
    tools_active = request.path.startswith(tools_url)
    tools_text = u"Työkalut"

    items = [
        (stats_active, stats_url, stats_text),
        (orders_active, orders_url, orders_text),
        (batches_active, batches_url, batches_text),
        (tools_active, tools_url, tools_text),
    ]

    if 'lippukala' in settings.INSTALLED_APPS:
        pos_url = url('tickets_admin_pos_view', event.slug)
        pos_active = False
        pos_text = u"Lipuntarkastus"

        items.extend([
            (pos_active, pos_url, pos_text),
        ])

    return items
Esempio n. 3
0
def labour_admin_roster_view(request, vars, event, job_category_slug=None):
    if job_category_slug is not None:
        get_object_or_404(JobCategory, event=event, slug=job_category_slug)

    tz = tzlocal()

    # use javaScriptCase because this gets directly embedded in <script> as json
    config = dict(
        event=event.as_dict(),
        workHours=[
            dict(startTime=hour.astimezone(tz).isoformat())
            for hour in event.labour_event_meta.work_hours
        ],
        lang='fi', # XXX I18N hardcoded
        urls=dict(
            base=url('labour_admin_roster_view', event.slug),
            jobCategoryApi=url('labour_api_job_categories_view', event.slug),
        )
    )

    vars.update(
        config_json=json.dumps(config),
    )

    return render(request, 'labour_admin_roster_view.pug', vars)
Esempio n. 4
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),
    ]
Esempio n. 5
0
    def get(self, request, event, form, errors):
        order = get_order(request, event)

        phases = []

        for phase in ALL_PHASES:
            phases.append(dict(
                url=url(phase.name, event.slug),
                friendly_name=phase.friendly_name,
                current=phase is self
            ))

        phase = dict(
            url=url(self.name, event.slug),
            next_phase=bool(self.next_phase),
            prev_phase=bool(self.prev_phase),
            can_cancel=self.can_cancel,
            payment_phase=self.payment_phase,
            name=self.name
        )

        vars = dict(self.vars(request, event, form),
            event=event,
            form=form,
            errors=errors,
            order=order,
            phase=phase,
            phases=phases,

            # XXX hack to hide the login form
            login_page=True
        )

        return render(request, self.template, vars)
Esempio n. 6
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 = u"Kojelauta"

    signups_url = url('labour_admin_signups_view', event.slug)
    signups_active = request.path.startswith(signups_url)
    signups_text = u"Tapahtumaan ilmoittautuneet henkilöt"

    mail_url = url('labour_admin_mail_view', event.slug)
    mail_active = request.path.startswith(mail_url)
    mail_text = u"Työvoimaviestit"

    # roster_url = url('labour_admin_roster_view', event.slug)
    # roster_active = request.path == roster_url
    # roster_text = u"Työvuorojen suunnittelu"

    query_url = url('labour_admin_query', event.slug)
    query_active = request.path == query_url
    query_text = u"Hakemusten suodatus"

    return [
        (dashboard_active, dashboard_url, dashboard_text),
        (signups_active, signups_url, signups_text),
        (mail_active, mail_url, mail_text),
        # (roster_active, roster_url, roster_text),
        (query_active, query_url, query_text),
    ]
Esempio n. 7
0
    def get(self, request, event, form, errors):
        order = get_order(request, event)

        phases = []

        for phase in ALL_PHASES:
            phases.append(
                dict(url=url(phase.name, event.slug),
                     friendly_name=phase.friendly_name,
                     current=phase is self))

        phase = dict(url=url(self.name, event.slug),
                     next_phase=bool(self.next_phase),
                     prev_phase=bool(self.prev_phase),
                     can_cancel=self.can_cancel,
                     can_go_back=self.can_go_back(request, event),
                     payment_phase=self.payment_phase,
                     name=self.name)

        vars = dict(
            self.vars(request, event, form),
            event=event,
            form=form,
            errors=errors,
            order=order,
            phase=phase,
            phases=phases,

            # XXX hack to hide the login form
            login_page=True)

        return render(request, self.template, vars)
Esempio n. 8
0
def labour_admin_roster_view(request, vars, event, job_category_slug=None):
    if job_category_slug is not None:
        get_object_or_404(JobCategory, event=event, slug=job_category_slug)

    tz = tzlocal()

    # use javaScriptCase because this gets directly embedded in <script> as json
    config = dict(
        event=event.as_dict(),
        workHours=[
            dict(startTime=hour.astimezone(tz).isoformat())
            for hour in event.labour_event_meta.work_hours
        ],
        lang='fi', # XXX I18N hardcoded
        urls=dict(
            base=url('labour_admin_roster_view', event.slug),
            jobCategoryApi=url('labour_api_job_categories_view', event.slug),
        )
    )

    vars.update(
        config_json=json.dumps(config),
    )

    return render(request, 'labour_admin_roster_view.jade', vars)
Esempio n. 9
0
def get_timetable_tabs(request, event):
    timetable_url = url('programme_timetable_view', event.slug)
    timetable_active = request.path == timetable_url
    timetable_text = 'Ohjelmakartta'

    special_url = url('programme_special_view', event.slug)
    special_active = request.path == special_url
    special_text = 'Ohjelmakartan ulkopuolinen ohjelma'

    return [
        Tab(timetable_url, timetable_text, timetable_active, 0),
        Tab(special_url, special_text, special_active, 0),
    ]
Esempio n. 10
0
def get_schedule_tabs(request, event):
    schedule_url = url('programme:schedule_view', event.slug)
    schedule_active = request.path == schedule_url
    schedule_text = 'Ohjelmakartta'

    special_url = url('programme:special_view', event.slug)
    special_active = request.path == special_url
    special_text = 'Ohjelmakartan ulkopuolinen ohjelma'

    return [
        Tab(schedule_url, schedule_text, schedule_active, 0),
        Tab(special_url, special_text, special_active, 0),
    ]
Esempio n. 11
0
def programme_profile_menu_items(request):
    programme_url = url('programme:profile_view')
    programme_active = request.path.startswith(programme_url)
    programme_text = _('Programmes')

    reservations_url = url('programme:profile_reservations_view')
    reservations_active = request.path.startswith(reservations_url)
    reservations_text = _('Seat reservations')

    return [
        (programme_active, programme_url, programme_text),
        (reservations_active, reservations_url, reservations_text),
    ]
Esempio n. 12
0
def programme_profile_menu_items(request):
    programme_url = url('programme_profile_view')
    programme_active = request.path.startswith(programme_url)
    programme_text = _('Programmes')

    reservations_url = url('programme_profile_reservations_view')
    reservations_active = request.path.startswith(reservations_url)
    reservations_text = _('Seat reservations')

    return [
        (programme_active, programme_url, programme_text),
        (reservations_active, reservations_url, reservations_text),
    ]
Esempio n. 13
0
def get_timetable_tabs(request, event):
    timetable_url = url('programme_timetable_view', event.slug)
    timetable_active = request.path == timetable_url
    timetable_text = 'Ohjelmakartta'

    special_url = url('programme_special_view', event.slug)
    special_active = request.path == special_url
    special_text = 'Ohjelmakartan ulkopuolinen ohjelma'

    return [
        Tab(timetable_url, timetable_text, timetable_active, 0),
        Tab(special_url, special_text, special_active, 0),
    ]
Esempio n. 14
0
def sms_admin_menu_items(request, event):
    votes_url = url('sms_admin_votes_view', event.slug)
    votes_active = request.path == votes_url
    votes_text = 'Äänestykset'

    received_url = url('sms_admin_received_view', event.slug)
    received_active = request.path == received_url
    received_text = 'Vastaanotetut viestit'

    return [
        (votes_active, votes_url, votes_text),
        (received_active, received_url, received_text),
    ]
Esempio n. 15
0
def sms_admin_menu_items(request, event):
    votes_url = url('sms_admin_votes_view', event.slug)
    votes_active = request.path == votes_url
    votes_text = u'Äänestykset'

    received_url = url('sms_admin_received_view', event.slug)
    received_active = request.path == received_url
    received_text = u'Vastaanotetut viestit'

    return [
        (votes_active, votes_url, votes_text),
        (received_active, received_url, received_text),
    ]
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),
    ]
Esempio n. 17
0
def programme_admin_menu_items(request, event):
    timetable_url = url('programme_admin_timetable_view', event.slug)
    timetable_active = request.path == timetable_url
    timetable_text = u'Ohjelmakartan esikatselu'

    index_url = url('programme_admin_view', event.slug)
    index_active = request.path.startswith(index_url) and not timetable_active # XXX
    index_text = u'Ohjelmaluettelo'


    return [
        (index_active, index_url, index_text),
        (timetable_active, timetable_url, timetable_text),
    ]
Esempio n. 18
0
def query_exec(request, vars, event):
    if not request.is_ajax() and not settings.DEBUG:
        # Don't bother with non-ajax requests.
        return HttpResponseRedirect(reverse(query_index, args=[event.slug]))

    query_builder_class = get_query(event)
    if query_builder_class is None:
        return HttpResponseNotFound()

    query_builder = query_builder_class()
    query_builder.parse(request.POST)

    q_results = query_builder.exec_query()
    m_results = merge_values(list(q_results))
    for result in m_results:
        # NB signup link uses person.pk, not signup.pk
        signup = Signup.objects.get(pk=result["pk"])

        result["__url"] = url("labour_admin_signup_view", event.slug, signup.person.pk)

    convert_datetimes(m_results)
    j_results = json.dumps(m_results)

    if request.is_ajax():
        # Normal ajax-request.
        return HttpResponse(j_results)
    else:
        # Debug emitted standard POST-request.
        get_query_config(vars, query_builder)
        vars.update(
            query_builder_results=j_results,
            query_builder_views=json.dumps(query_builder.views),
        )
        return render(request, 'labour_query.jade', vars)
Esempio n. 19
0
def query_exec(request, vars, event):
    if not request.is_ajax() and not settings.DEBUG:
        # Don't bother with non-ajax requests.
        return HttpResponseRedirect(reverse(query_index, args=[event.slug]))

    query_builder_class = get_query(event)
    if query_builder_class is None:
        return HttpResponseNotFound()

    query_builder = query_builder_class()
    query_builder.parse(request.POST)

    q_results = query_builder.exec_query()
    m_results = merge_values(list(q_results))
    for result in m_results:
        # NB signup link uses person.pk, not signup.pk
        signup = Signup.objects.get(pk=result["pk"])

        result["__url"] = url("labour_admin_signup_view", event.slug,
                              signup.person.pk)

    convert_datetimes(m_results)
    j_results = json.dumps(m_results)

    if request.is_ajax():
        # Normal ajax-request.
        return HttpResponse(j_results)
    else:
        # Debug emitted standard POST-request.
        get_query_config(vars, query_builder)
        vars.update(
            query_builder_results=j_results,
            query_builder_views=json.dumps(query_builder.views),
        )
        return render(request, 'labour_query.jade', vars)
Esempio n. 20
0
    def get_feedback_url(self, request=None):
        path = url('programme_feedback_view', self.event.slug, self.pk)

        if request:
            return request.build_absolute_uri(path)
        else:
            return path
Esempio n. 21
0
    def get_feedback_url(self, request=None):
        path = url('programme_feedback_view', self.event.slug, self.pk)

        if request:
            return request.build_absolute_uri(path)
        else:
            return path
Esempio n. 22
0
    def render_message_body(self, request):
        context = dict(link=request.build_absolute_uri(
            url('desuprofile_integration_confirmation_view', self.code)))

        return render_to_string(
            'desuprofile_integration_confirmation_message.eml',
            context=context,
            request=request)
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),
    ]
Esempio n. 24
0
def labour_admin_roster_view(request, vars, event):
    # use javaScriptCase because this gets directly embedded in <script> as json
    tz = tzlocal()

    config = dict(
        event=event.as_dict(),
        workHours=[dict(startTime=hour.astimezone(tz).isoformat()) for hour in event.labour_event_meta.work_hours],
        lang="fi",  # XXX I18N hardcoded
        urls=dict(
            base=url("labour_admin_roster_view", event.slug),
            jobCategoryApi=url("labour_api_job_categories_view", event.slug),
        ),
    )

    vars.update(config_json=json.dumps(config))

    return render(request, "labour_admin_roster_view.jade", vars)
Esempio n. 25
0
def programme_profile_menu_items(request):
    programme_url = url('programme_profile_view')
    programme_active = request.path.startswith(programme_url)
    programme_text = _('Programmes')

    return [
        (programme_active, programme_url, programme_text)
    ]
Esempio n. 26
0
def programme_profile_menu_items(request):
    programme_url = url('programme_profile_view')
    programme_active = request.path.startswith(programme_url)
    programme_text = _('Programmes')

    return [
        (programme_active, programme_url, programme_text)
    ]
Esempio n. 27
0
def badges_admin_menu_items(request, event):
    dashboard_url = url('badges_admin_dashboard_view', event.slug)
    dashboard_active = request.path == dashboard_url
    dashboard_text = u'Kojelauta'

    batches_url = url('badges_admin_batches_view', event.slug)
    batches_active = request.path.startswith(batches_url)
    batches_text = u'Tulostuserät'

    badges_url = url('badges_admin_badges_view', event.slug)
    badges_active = request.path.startswith(badges_url)
    badges_text = u'Nimilistat'

    return [
        (dashboard_active, dashboard_url, dashboard_text),
        (badges_active, badges_url, badges_text),
        (batches_active, batches_url, batches_text),
    ]
Esempio n. 28
0
def qualifications_related():
    result = []

    for qual in Qualification.objects.all():
        # wouldn't need labour_person_(dis)qualify_view if they used POST as they should
        for view_name in ['labour_person_qualification_view', 'labour_person_qualify_view', 'labour_person_disqualify_view']:
            result.append(url(view_name, qual.slug))

    return result
Esempio n. 29
0
def qualifications_related():
    result = []

    for qual in Qualification.objects.all():
        # wouldn't need labour_person_(dis)qualify_view if they used POST as they should
        for view_name in ['labour_person_qualification_view', 'labour_person_qualify_view', 'labour_person_disqualify_view']:
            result.append(url(view_name, qual.slug))

    return result
Esempio n. 30
0
def signup_view(request, event, alternative_form_slug=None):
    """
    This is the "gate" function. The implementation is in
    `actual_signup_view`.

    The purpose of this function is to redirect new users through the process
    of registering an account, entering qualifications and only then signing up.
    Existing users are welcomed to sign up right away.
    """

    if alternative_form_slug:
        actual_signup_url = url('labour:special_signup_view', event.slug,
                                alternative_form_slug)
    else:
        actual_signup_url = url('labour:signup_view', event.slug)

    if not request.user.is_authenticated:
        pages = [
            ('core_login_view', _('Sign up or sign in...'), login_related()),
            ('labour:qualifications_view', _('Revise qualifications'),
             qualifications_related()),
            (actual_signup_url, _('Apply for volunteer work')),
        ]

        page_wizard_init(request, pages)
        return login_redirect(request)

    try:
        person = request.user.person
    except Person.DoesNotExist:
        pages = [
            ('core_personify_view', _('Complete contact information')),
            ('labour:qualifications_view', _('Revise qualifications'),
             qualifications_related()),
            (actual_signup_url, _('Apply for volunteer work')),
        ]

        page_wizard_init(request, pages)
        return redirect('core_personify_view')

    return actual_signup_view(request,
                              event,
                              alternative_form_slug=alternative_form_slug)
Esempio n. 31
0
    def render_message_body(self, request):
        from django.template import RequestContext
        from django.template.loader import render_to_string

        vars = dict(
            code=self,
            link=request.build_absolute_uri(url('programme_self_service_view', self.programme.event.slug, self.code))
        )

        return render_to_string('programme_self_service_message.eml', vars, context_instance=RequestContext(request, {}))
Esempio n. 32
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")

    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),
        (roster_active, roster_url, roster_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
Esempio n. 33
0
    def render_message_body(self, request):
        event = self.event

        vars = dict(
            event=event,
            link=request.build_absolute_uri(url('programme_accept_invitation_view', event.slug, self.code)),
            meta=event.programme_event_meta,
            programme=self.programme,
        )

        return render_to_string('programme_invitation_message.eml', vars, request=request)
Esempio n. 34
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,
    )
Esempio n. 35
0
    def render_message_body(self, request):
        event = self.event

        vars = dict(
            event=event,
            link=request.build_absolute_uri(url('programme:accept_invitation_view', event.slug, self.code)),
            meta=event.programme_event_meta,
            programme=self.programme,
        )

        return render_to_string('programme_invitation_message.eml', vars, request=request)
Esempio n. 36
0
def labour_signup_view(request, event, alternative_form_slug=None):
    """
    This is the "gate" function. The implementation is in
    `actual_labour_signup_view`.

    The purpose of this function is to redirect new users through the process
    of registering an account, entering qualifications and only then signing up.
    Existing users are welcomed to sign up right away.
    """

    if alternative_form_slug:
        actual_signup_url = url('labour_special_signup_view', event.slug, alternative_form_slug)
    else:
        actual_signup_url = url('labour_signup_view', event.slug)

    if not request.user.is_authenticated():
        pages = [
            ('core_login_view', u'Sisäänkirjautuminen'),
            ('core_registration_view', u'Rekisteröityminen'),
            ('labour_qualifications_view', u'Pätevyydet', qualifications_related()),
            (actual_signup_url, u'Ilmoittautuminen'),
        ]

        page_wizard_init(request, pages)
        return login_redirect(request)

    try:
        person = request.user.person
    except Person.DoesNotExist:
        pages = [
            ('core_personify_view', u'Perustiedot'),
            ('labour_qualifications_view', u'Pätevyydet', qualifications_related()),
            (actual_signup_url, u'Ilmoittautuminen'),
        ]

        page_wizard_init(request, pages)
        return redirect('core_personify_view')

    return actual_labour_signup_view(request, event, alternative_form_slug=alternative_form_slug)
Esempio n. 37
0
def labour_signup_view(request, event, alternative_form_slug=None):
    """
    This is the "gate" function. The implementation is in
    `actual_labour_signup_view`.

    The purpose of this function is to redirect new users through the process
    of registering an account, entering qualifications and only then signing up.
    Existing users are welcomed to sign up right away.
    """

    if alternative_form_slug:
        actual_signup_url = url('labour_special_signup_view', event.slug, alternative_form_slug)
    else:
        actual_signup_url = url('labour_signup_view', event.slug)

    if not request.user.is_authenticated:
        pages = [
            ('core_login_view', _('Sign up or sign in...'), login_related()),
            ('labour_qualifications_view', _('Revise qualifications'), qualifications_related()),
            (actual_signup_url, _('Apply for volunteer work')),
        ]

        page_wizard_init(request, pages)
        return login_redirect(request)

    try:
        person = request.user.person
    except Person.DoesNotExist:
        pages = [
            ('core_personify_view', _('Complete contact information')),
            ('labour_qualifications_view', _('Revise qualifications'), qualifications_related()),
            (actual_signup_url, _('Apply for volunteer work')),
        ]

        page_wizard_init(request, pages)
        return redirect('core_personify_view')

    return actual_labour_signup_view(request, event, alternative_form_slug=alternative_form_slug)
Esempio n. 38
0
def badges_admin_menu_items(request, event):
    dashboard_url = url('badges_admin_dashboard_view', event.slug)
    dashboard_active = request.path == dashboard_url
    dashboard_text = _('Dashboard')

    batches_url = url('badges_admin_batches_view', event.slug)
    batches_active = request.path.startswith(batches_url)
    batches_text = _('Batches')

    badges_url = url('badges_admin_badges_view', event.slug)
    badges_active = request.path.startswith(badges_url)
    badges_text = _('Entrance lists')

    onboarding_url = url('badges_admin_onboarding_view', event.slug)
    onboarding_active = request.path.startswith(onboarding_url)
    onboarding_text = _('Onboarding')

    return [
        (dashboard_active, dashboard_url, dashboard_text),
        (badges_active, badges_url, badges_text),
        (batches_active, batches_url, batches_text),
        (onboarding_active, onboarding_url, onboarding_text),
    ]
Esempio n. 39
0
def badges_admin_menu_items(request, event):
    dashboard_url = url('badges_admin_dashboard_view', event.slug)
    dashboard_active = request.path == dashboard_url
    dashboard_text = _('Dashboard')

    batches_url = url('badges_admin_batches_view', event.slug)
    batches_active = request.path.startswith(batches_url)
    batches_text = _('Batches')

    badges_url = url('badges_admin_badges_view', event.slug)
    badges_active = request.path.startswith(badges_url)
    badges_text = _('Entrance lists')

    onboarding_url = url('badges_admin_onboarding_view', event.slug)
    onboarding_active = request.path.startswith(onboarding_url)
    onboarding_text = _('Onboarding')

    return [
        (dashboard_active, dashboard_url, dashboard_text),
        (badges_active, badges_url, badges_text),
        (batches_active, batches_url, batches_text),
        (onboarding_active, onboarding_url, onboarding_text),
    ]
Esempio n. 40
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,
    )
Esempio n. 41
0
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,
        ),
    ]
Esempio n. 42
0
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,
        ),
    ]
Esempio n. 43
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 = u"Kojelauta"

    signups_url = url("labour_admin_signups_view", event.slug)
    signups_active = request.path.startswith(signups_url)
    signups_text = u"Tapahtumaan ilmoittautuneet henkilöt"

    mail_url = url("labour_admin_mail_view", event.slug)
    mail_active = request.path.startswith(mail_url)
    mail_text = u"Työvoimaviestit"

    roster_url = url("labour_admin_roster_view", event.slug)
    roster_active = request.path.startswith(roster_url)
    roster_text = u"Työvuorojen suunnittelu"

    query_url = url("labour_admin_query", event.slug)
    query_active = request.path == query_url
    query_text = u"Hakemusten suodatus"

    onboarding_url = url("labour_onboarding_view", event.slug)
    onboarding_active = request.path == onboarding_url
    onboarding_text = _(u"Onboarding")

    menu_items = [
        (dashboard_active, dashboard_url, dashboard_text),
        (signups_active, signups_url, signups_text),
        (mail_active, mail_url, mail_text),
        (roster_active, roster_url, roster_text),
        (onboarding_active, onboarding_url, onboarding_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 = u"Paitakoot"

        menu_items.append((shirts_active, shirts_url, shirts_text))

    # unstable / development features
    if settings.DEBUG:
        menu_items.extend(((query_active, query_url, query_text),))

    return menu_items
Esempio n. 44
0
def tickets_admin_menu_items(request, event):
    stats_url = url('tickets_admin_stats_view', event.slug)
    stats_active = request.path == stats_url
    stats_text = "Myyntitilanne"

    orders_url = url('tickets_admin_orders_view', event.slug)
    orders_active = request.path.startswith(orders_url)
    orders_text = "Tilaukset"

    batches_url = url('tickets_admin_batches_view', event.slug)
    batches_active = request.path.startswith(batches_url)
    batches_text = "Toimituserät"

    accommodation_url = url('tickets_admin_accommodation_view', event.slug)
    accommodation_active = request.path.startswith(accommodation_url)
    accommodation_text = "Majoituslistat"

    tools_url = url('tickets_admin_tools_view', event.slug)
    tools_active = request.path.startswith(tools_url)
    tools_text = "Työkalut"

    shirts_url = url('tickets_admin_shirts_view', event.slug)
    shirts_active = request.path.startswith(shirts_url)
    shirts_text = 'Paidat'

    items = [
        (stats_active, stats_url, stats_text),
        (orders_active, orders_url, orders_text),
        (batches_active, batches_url, batches_text),
        (accommodation_active, accommodation_url, accommodation_text),
        (tools_active, tools_url, tools_text),
        (shirts_active, shirts_url, shirts_text),
    ]

    if 'lippukala' in settings.INSTALLED_APPS:
        pos_url = url('tickets_admin_pos_view', event.slug)
        pos_active = False
        pos_text = "Lipuntarkastus"

        items.extend([
            (pos_active, pos_url, pos_text),
        ])

    return items
Esempio n. 45
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
Esempio n. 46
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
Esempio n. 47
0
 def checkout_return_url(self, request):
     return request.build_absolute_uri(url('payments_process_view', self.event.slug))
Esempio n. 48
0
 def checkout_return_url(self, request):
     return request.build_absolute_uri(url('payments_process_view', self.event.slug))
Esempio n. 49
0
    def render_message_body(self, request):
        context = dict(
            link=request.build_absolute_uri(url('desuprofile_integration_confirmation_view', self.code))
        )

        return render_to_string('desuprofile_integration_confirmation_message.eml', context=context, request=request)
Esempio n. 50
0
 def plot(self):
     result = self.run_command()
     if result.returncode == 1: raise PlottingError('Unknown')
     return url(HOST, decode(result.stdout), no_cache_params())
Esempio n. 51
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
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),
    ]
Esempio n. 53
0
def access_admin_menu_items(request, organization):
    aliases_url = url('access_admin_aliases_view', organization.slug)
    aliases_active = request.path == aliases_url
    aliases_text = 'Sähköpostialiakset'

    return [(aliases_active, aliases_url, aliases_text)]
Esempio n. 54
0
    def render_message_body(self, request):
        vars = dict(
            link=request.build_absolute_uri(url('desuprofile_integration_confirmation_view', self.code))
        )

        return render_to_string('desuprofile_integration_confirmation_message.eml', vars, context_instance=RequestContext(request, {}))
 def get_absolute_url(self):
     return url('membership_admin_new_term_view', self.organization.slug)
Esempio n. 56
0
def access_admin_menu_items(request, organization):
    aliases_url = url('access_admin_aliases_view', organization.slug)
    aliases_active = request.path == aliases_url
    aliases_text = 'Sähköpostialiakset'

    return [(aliases_active, aliases_url, aliases_text)]
Esempio n. 57
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'

    return [(members_active, members_url, members_text)]