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)
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)
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
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
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)
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
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)
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
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
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