Esempio n. 1
0
    def get(self, request, *args, **kwargs):
        """ called by the template system to get the context data for the template """

        if not is_browser_supported(request):
            return redirect('Plein:niet-ondersteund')

        # zet alles goed voor bezoekers / geen rol
        template = TEMPLATE_PLEIN_BEZOEKER
        context = dict()

        # ga naar live server banner tonen?
        context['ga_naar_live_server'] = settings.IS_TEST_SERVER

        if request.user.is_authenticated:
            rol_nu = rol_get_huidige(request)

            if rol_nu == Rollen.ROL_SPORTER:
                template = TEMPLATE_PLEIN_SPORTER

            elif rol_nu == Rollen.ROL_NONE or rol_nu is None:
                # gebruik de bezoeker pagina
                pass

            else:
                # beheerder
                template = TEMPLATE_PLEIN_BEHEERDER

                handleiding_pagina = ROL2HANDLEIDING_PAGINA[rol_nu]

                context['handleiding_url'] = reverse_handleiding(
                    request, handleiding_pagina)

                if rol_nu == Rollen.ROL_BB:
                    context['rol_is_bb'] = True
                elif rol_nu == Rollen.ROL_BKO:
                    context['rol_is_bko'] = True
                elif rol_nu == Rollen.ROL_RKO:
                    context['rol_is_rko'] = True
                elif rol_nu == Rollen.ROL_RCL:
                    context['rol_is_rcl'] = True
                elif rol_nu == Rollen.ROL_HWL:
                    context['rol_is_hwl'] = True
                elif rol_nu == Rollen.ROL_WL:
                    context['rol_is_wl'] = True
                elif rol_nu == Rollen.ROL_SEC:
                    context['rol_is_sec'] = True
                else:  # pragma: no cover
                    # vangnet voor nieuwe rollen
                    raise ValueError("PleinView: onbekende rol %s" % rol_nu)

                context['huidige_rol'] = rol_get_beschrijving(request)

                # kijk hoeveel taken er open staan
                eval_open_taken(request)

        context['naam_site'] = settings.NAAM_SITE
        context['email_support'] = settings.EMAIL_SUPPORT

        menu_dynamics(self.request, context)
        return render(request, template, context)
Esempio n. 2
0
    def get(self, request, *args, **kwargs):
        """ called by the template system to get the context data for the template """
        context = dict()

        try:
            comp_pk = int(kwargs['comp_pk'][:6])  # afkappen voor de veiligheid
            comp = (Competitie.objects.get(pk=comp_pk))
        except (ValueError, Competitie.DoesNotExist):
            raise Http404('Competitie niet gevonden')

        context['comp'] = comp

        if comp.klassengrenzen_vastgesteld:
            if comp.afstand == '18':
                aantal_pijlen = 30
            else:
                aantal_pijlen = 25

            rol_nu = rol_get_huidige(request)
            context['toon_aantal'] = toon_aantal = (rol_nu == Rollen.ROL_BB)

            context['indiv_klassen'] = self._get_indiv_klassen(
                comp, toon_aantal)
            context['team_klassen'] = self._get_team_klassen(
                comp, aantal_pijlen)
            context['aantal_pijlen'] = aantal_pijlen
            context[
                'rk_bk_klassen_vastgesteld'] = comp.klassengrenzen_vastgesteld_rk_bk

        menu_dynamics_competitie(self.request, context, comp_pk=comp.pk)
        return render(request, self.template_name, context)
Esempio n. 3
0
    def test_func(self):
        """ called by the UserPassesTestMixin to verify the user has permissions to use this view """

        account = self.request.user
        if account.is_authenticated:
            self.rol_nu = rol_get_huidige(self.request)
            if self.rol_nu == Rollen.ROL_BB:
                return True

        return False
Esempio n. 4
0
def menu_dynamics(request, context, actief='hetplein'):
    """ Deze functie update the template context voor het dynamische gedrag van
        menu zoals de 'Andere rollen' en het menu item dat actief is.
    """

    # welke regel van het menu op laten lichten?
    context['menu_actief'] = actief
    if not (actief in ACTIEF_OPTIES or actief.startswith('competitie-')):
        raise AssertionError("menu_dynamics: Onbekende 'actief' waarde: %s" % repr(actief))

    # test server banner tonen?
    context['is_test_server'] = settings.IS_TEST_SERVER

    # zet context variabelen om aan te geven welke optionele delen van het menu getoond moeten worden
    context['toon_kalender'] = False
    if request.user.is_authenticated:

        # sidenav naam
        context['menu_toon_naam'] = True

        # wissel van rol toegestaan?
        if rol_mag_wisselen(request):
            rol = rol_get_huidige(request)

            context['toon_kalender'] = True

            # sidenav rol
            context['menu_rol_beschrijving'] = rol_get_beschrijving(request)

            # activeer menu 'wissel van rol'
            context['menu_show_wisselvanrol'] = True

            if rol in (Rollen.ROL_SEC, Rollen.ROL_HWL, Rollen.ROL_WL):
                context['menu_toon_vereniging'] = True

            if rol == Rollen.ROL_SPORTER:
                context['menu_toon_sporter_profiel'] = True

            if rol in (Rollen.ROL_BKO, Rollen.ROL_RKO, Rollen.ROL_RCL,
                       Rollen.ROL_SEC, Rollen.ROL_HWL, Rollen.ROL_WL):
                context['toon_kalender'] = False

            # taken
            if rol in (Rollen.ROL_BB,
                       Rollen.ROL_BKO, Rollen.ROL_RKO, Rollen.ROL_RCL,
                       Rollen.ROL_HWL):
                context['menu_show_taken'] = True
                context['menu_aantal_open_taken'] = aantal_open_taken(request)
        else:
            context['menu_toon_sporter_profiel'] = True

    # het label met de scherm grootte boven aan het scherm
    context['toon_schermgrootte'] = settings.DEBUG
Esempio n. 5
0
    def get(request, *args, **kwargs):
        rol_nu = rol_get_huidige(request)

        if rol_nu == Rollen.ROL_BB:
            url = reverse('Kalender:manager')

        elif rol_nu == Rollen.ROL_HWL:
            url = reverse('Kalender:vereniging')

        else:
            url = get_url_huidige_maand()

        return HttpResponseRedirect(url)
Esempio n. 6
0
    def get_context_data(self, **kwargs):
        """ called by the template system to get the context data for the template """
        context = super().get_context_data(**kwargs)

        rol_nu = rol_get_huidige(self.request)

        context['competities'] = comps = list()

        for comp in (Competitie
                     .objects
                     .exclude(is_afgesloten=True)
                     .order_by('afstand', 'begin_jaar')):

            comp.bepaal_openbaar(rol_nu)

            if comp.is_openbaar:
                comps.append(comp)

                if comp.afstand == '18':
                    comp.img_src = static('plein/badge_nhb_indoor.png')
                else:
                    comp.img_src = static('plein/badge_nhb_25m1p.png')

                comp.card_url = reverse('Competitie:overzicht',
                                        kwargs={'comp_pk': comp.pk})
                comp.bepaal_fase()
                if comp.fase < 'B':
                    comp.text = "Hier worden de voorbereidingen voor getroffen voor de volgende bondscompetitie."
                else:
                    comp.text = "Alle informatie en uitslagen van de actuele bondscompetitie."
        # for

        if rol_nu == Rollen.ROL_BB:
            # als er nog geen competitie is voor het huidige jaar, geeft de BB dan de optie om deze op te starten
            beginjaar = bepaal_startjaar_nieuwe_competitie()
            context['nieuwe_seizoen'] = "%s/%s" % (beginjaar, beginjaar+1)
            context['bb_kan_competitie_aanmaken'] = (0 == Competitie.objects.filter(begin_jaar=beginjaar).count())

        if rol_nu in (Rollen.ROL_BB, Rollen.ROL_BKO, Rollen.ROL_RKO, Rollen.ROL_RCL, Rollen.ROL_HWL):
            context['toon_beheerders'] = True

        menu_dynamics_competitie(self.request, context)
        return context
Esempio n. 7
0
def menu_dynamics_competitie(request, context, comp_pk=None, actief=''):

    # voeg de seizoenen toe als sub-menus
    context['menu_competities'] = comps = list()
    menu_actief = 'competitie'

    rol_nu = rol_get_huidige(request)

    # zet de huidige competitie bovenaan
    # en de competitie-in-voorbereiding daar onder
    # groepeer per competitie-type (afstand)
    for obj in Competitie.objects.order_by('afstand', 'begin_jaar'):

        obj.bepaal_openbaar(rol_nu)

        if obj.is_openbaar:
            label = obj.titel()
            menu = 'competitie-%s' % obj.pk
            url = reverse('Competitie:overzicht', kwargs={'comp_pk': obj.pk})

            comp = {'url': url, 'menu': menu, 'label': label}
            comps.append(comp)

            if obj.pk == comp_pk:
                menu_actief = menu
    # for

    # voeg de historische competitie toe, helemaal onderaan
    label = 'Vorig seizoen'
    url = reverse('HistComp:top')
    menu = 'competitie-hist'

    comp = {'url': url, 'menu': menu, 'label': label}
    comps.append(comp)

    if actief == 'histcomp':
        menu_actief = menu

    # print('context:')
    # for key, value in context.items():
    #     print('  %s: %s' % (key, repr(value)))

    menu_dynamics(request, context, actief=menu_actief)
Esempio n. 8
0
 def test_func(self):
     """ called by the UserPassesTestMixin to verify the user has permissions to use this view """
     rol_nu = rol_get_huidige(self.request)
     return rol_nu == Rollen.ROL_BB
Esempio n. 9
0
 def test_func(self):
     """ called by the UserPassesTestMixin to verify the user has permissions to use this view """
     # gebruiker moet ingelogd zijn en rol Sporter gekozen hebben
     return rol_get_huidige(self.request) == Rollen.ROL_SPORTER
Esempio n. 10
0
 def test_func(self):
     """ called by the UserPassesTestMixin to verify the user has permissions to use this view """
     rol = rol_get_huidige(self.request)
     return rol != Rollen.ROL_NONE       # NONE is gebruiker die niet ingelogd is