예제 #1
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)

        context['url_stap_2'] = reverse('Functie:otp-koppelen-stap2')
        context['url_controleer'] = reverse('Functie:otp-koppelen-stap3')

        context['form'] = OTPControleForm()
        context['now'] = timezone.now()

        menu_dynamics(self.request, context, actief="wissel-van-rol")
        return context
예제 #2
0
    def get(self, request, *args, **kwargs):
        """ deze functie wordt aangeroepen om de GET request af te handelen """
        context = dict()

        try:
            wedstrijd_pk = int(str(
                kwargs['wedstrijd_pk'])[:6])  # afkappen voor de veiligheid
            wedstrijd = (KalenderWedstrijd.objects.get(pk=wedstrijd_pk))
        except KalenderWedstrijd.DoesNotExist:
            raise Http404('Wedstrijd niet gevonden')

        if self.rol_nu == Rollen.ROL_HWL and wedstrijd.organiserende_vereniging != self.functie_nu.nhb_ver:
            raise PermissionDenied('Wedstrijd niet van jouw vereniging')

        context['wedstrijd'] = wedstrijd

        try:
            sessie_pk = int(str(
                kwargs['sessie_pk'])[:6])  # afkappen voor de veiligheid
            sessie = (KalenderWedstrijdSessie.objects.get(pk=sessie_pk))
        except KalenderWedstrijdSessie.DoesNotExist:
            raise Http404('Sessie niet gevonden')

        context['sessie'] = sessie

        if wedstrijd.sessies.filter(pk=sessie.pk).count() != 1:
            raise Http404('Sessie hoort niet bij wedstrijd')

        context['opt_datums'] = self._maak_opt_datums(wedstrijd, sessie)
        sessie.tijd_begin_str = sessie.tijd_begin.strftime('%H:%M')

        context['opt_duur'] = self._maak_opt_duur(sessie)

        context['opt_klassen_m'], context[
            'opt_klassen_v'] = self._maak_opt_klassen(wedstrijd, sessie)

        context['url_terug'] = reverse('Kalender:wijzig-sessies',
                                       kwargs={'wedstrijd_pk': wedstrijd.pk})

        context['url_opslaan'] = reverse('Kalender:wijzig-sessie',
                                         kwargs={
                                             'wedstrijd_pk': wedstrijd.pk,
                                             'sessie_pk': sessie.pk
                                         })

        if wedstrijd.status == WEDSTRIJD_STATUS_GEANNULEERD:
            context['niet_verwijderbaar'] = True
        else:
            context['url_verwijder'] = context['url_opslaan']

        menu_dynamics(self.request, context, actief='kalender')
        return render(request, self.template_name, context)
예제 #3
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)

        sec_count = dict()
        hwl_count = dict()
        alle_ver = list()
        sec_email = dict()  # [ver_nr] = email
        for func in (Functie.objects.select_related('nhb_ver').filter(
                rol__in=('SEC', 'HWL')).exclude(
                    nhb_ver__geen_wedstrijden=True).annotate(
                        aantal_accounts=Count('accounts')).order_by(
                            'nhb_ver__ver_nr')):

            ver = func.nhb_ver
            ver_nr = ver.ver_nr
            if func.rol == 'SEC':
                sec_count[ver_nr] = func.aantal_accounts
                if func.bevestigde_email:
                    sec_email[ver_nr] = func.bevestigde_email
            else:
                hwl_count[ver_nr] = func.aantal_accounts

            if ver not in alle_ver:
                alle_ver.append(ver)
        # for

        context['geen_sec'] = geen_sec = list()
        context['geen_beheerders'] = geen_beheerders = list()

        for ver in alle_ver:
            ver_nr = ver.ver_nr

            try:
                ver.functie_sec_email = sec_email[ver_nr]
            except KeyError:
                ver.functie_sec_email = '??'

            count = sec_count[ver_nr]
            if count == 0:
                geen_sec.append(ver)
                ver.nr_geen_sec = len(geen_sec)

            count += hwl_count[ver_nr]
            if count == 0:
                geen_beheerders.append(ver)
                ver.nr_geen_beheerders = len(geen_beheerders)
        # for

        menu_dynamics(self.request, context, actief='vereniging')
        return context
예제 #4
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)

        huidige_jaar = timezone.now().year

        context['comp_1'] = self._comp_info(huidige_jaar - 1)
        context['comp_2'] = self._comp_info(huidige_jaar)

        context[
            'persoonlijke_leeftijdsklassen'] = self.request.user.is_authenticated

        menu_dynamics(self.request, context, actief='competitie')
        return context
예제 #5
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)

        # haal de deelnemer op
        try:
            deelnemer_pk = int(
                kwargs['deelnemer_pk'][:6])  # afkappen voor de veiligheid
            deelnemer = (RegioCompetitieSchutterBoog.objects.select_related(
                'sporterboog', 'sporterboog__sporter', 'sporterboog__boogtype',
                'bij_vereniging',
                'deelcompetitie__competitie').get(pk=deelnemer_pk))
        except (ValueError, RegioCompetitieSchutterBoog.DoesNotExist):
            raise Http404('Sporter niet gevonden')

        context['deelnemer'] = deelnemer

        # controleer dat deze deelnemer bekeken en gewijzigd mag worden
        self._mag_wijzigen_of_404(deelnemer)

        deelnemer.naam_str = deelnemer.sporterboog.sporter.volledige_naam()
        deelnemer.boog_str = deelnemer.sporterboog.boogtype.beschrijving
        ag_str = '%.3f' % deelnemer.ag_voor_team
        deelnemer.ag_str = ag_str.replace('.', ',')

        ag_hist = (ScoreHist.objects.filter(
            score__sporterboog=deelnemer.sporterboog,
            score__afstand_meter=deelnemer.deelcompetitie.competitie.afstand,
            score__type=SCORE_TYPE_TEAM_AG).order_by('-when'))
        for obj in ag_hist:
            obj.oude_waarde /= 1000
            obj.nieuwe_waarde /= 1000
            obj.oude_waarde_str = "%.3f" % obj.oude_waarde
            obj.nieuwe_waarde_str = "%.3f" % obj.nieuwe_waarde
        # for
        context['ag_hist'] = ag_hist

        comp = deelnemer.deelcompetitie.competitie
        comp.bepaal_fase()

        if comp.fase < 'E':
            context['url_opslaan'] = reverse(
                'CompRegio:wijzig-ag', kwargs={'deelnemer_pk': deelnemer.pk})

        if self.rol_nu == Rollen.ROL_HWL:
            menu_dynamics(self.request, context, actief='vereniging')
        else:
            menu_dynamics_competitie(self.request, context, comp_pk=comp.pk)

        return context
예제 #6
0
파일: views.py 프로젝트: RamonvdW/nhb-apps
    def get(self, request, *args, **kwargs):
        """ called by the template system to get the context data for the template """

        # print("resolver_match: %s" % repr(request.resolver_match))

        context = {}
        if request.resolver_match.url_name == 'begin':
            page = settings.HANDLEIDING_TOP
        else:
            page = request.resolver_match.url_name

        template = 'handleiding/%s.dtl' % page

        menu_dynamics(self.request, context)
        return render(request, template, context)
예제 #7
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)

        # zoek de deelcompetitie waar de regio teams voor in kunnen stellen
        context['deelcomp_rk'] = deelcomp_rk = self._get_deelcomp_rk(
            kwargs['rk_deelcomp_pk'])
        ver = self.functie_nu.nhb_ver

        teamtype_default = None
        teams = TeamType.objects.order_by('volgorde')
        for obj in teams:
            obj.choice_name = obj.afkorting
            if obj.afkorting == 'R':
                teamtype_default = obj
        # for
        context['opt_team_type'] = teams

        try:
            rk_team_pk = int(
                kwargs['rk_team_pk'][:6])  # afkappen voor de veiligheid
            rk_team = (KampioenschapTeam.objects.get(
                pk=rk_team_pk, deelcompetitie=deelcomp_rk, vereniging=ver))
        except (ValueError, KampioenschapTeam.DoesNotExist):
            raise Http404('Team niet gevonden of niet van jouw vereniging')
        except KeyError:
            # dit is een nieuw rk_team
            rk_team = KampioenschapTeam(pk=0,
                                        vereniging=self.functie_nu.nhb_ver,
                                        team_type=teamtype_default)

        context['rk_team'] = rk_team

        for obj in teams:
            obj.actief = rk_team.team_type == obj
        # for

        context['url_opslaan'] = reverse('CompRayon:teams-rk-wijzig',
                                         kwargs={
                                             'rk_deelcomp_pk': deelcomp_rk.pk,
                                             'rk_team_pk': rk_team.pk
                                         })

        if rk_team.pk > 0:
            context['url_verwijderen'] = context['url_opslaan']

        menu_dynamics(self.request, context, actief='vereniging')
        return context
예제 #8
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)

        try:
            wedstrijd_pk = str(
                kwargs['wedstrijd_pk'])[:6]  # afkappen voor de veiligheid
            wedstrijd = KalenderWedstrijd.objects.get(pk=wedstrijd_pk)
        except KalenderWedstrijd.DoesNotExist:
            raise Http404('Wedstrijd niet gevonden')

        context['wedstrijd'] = wedstrijd

        menu_dynamics(self.request, context, 'kalender')
        return context
예제 #9
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)

        count_niet_afgehandeld = SiteFeedback.objects.filter(
            is_afgehandeld=False).count()
        context[
            'count_aanwezig'] = count_aanwezig = SiteFeedback.objects.count()
        context['count_afgehandeld'] = count_aanwezig - count_niet_afgehandeld

        if self.request.user.is_staff:
            context['url_admin_site'] = reverse(
                'admin:Overig_sitefeedback_changelist')

        menu_dynamics(self.request, context)
        return context
예제 #10
0
    def _render_form(self, form, functie):
        context = dict()
        context['functie'] = functie

        if self.rol_nu in (Rollen.ROL_SEC, Rollen.ROL_HWL, Rollen.ROL_WL):
            context['terug_url'] = reverse('Functie:overzicht-vereniging')
            menu_dynamics(self.request, context, actief='vereniging')
        else:
            context['terug_url'] = reverse('Functie:overzicht')
            menu_dynamics(self.request, context, actief='competitie')

        context['form'] = form
        context['form_submit_url'] = reverse('Functie:wijzig-email',
                                             kwargs={'functie_pk': functie.pk})

        return render(self.request, TEMPLATE_WIJZIG_EMAIL, context)
예제 #11
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)

        try:
            context['moet_oude_ww_weten'] = self.request.session[
                'moet_oude_ww_weten']
        except KeyError:
            context['moet_oude_ww_weten'] = True

        account = self.request.user
        if account.sporter_set.count(
        ) > 0:  # FUTURE: ongewenste kennis over op Sporter.account
            menu_dynamics(self.request, context, actief="sporter-profiel")
        else:
            menu_dynamics(self.request, context)
        return context
예제 #12
0
파일: views.py 프로젝트: RamonvdW/nhb-apps
    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)

        context['filter'] = self.filter

        if context['is_paginated']:
            context['page_links'] = self._make_link_urls(context)
            context['active'] = str(context['page_obj'].number)

        # extra informatie vaststellen, maar alleen voor de actieve pagina
        for obj in context['object_list']:
            obj.door = obj.bepaal_door()
        # for

        context['url_rest'] = reverse('Logboek:rest')
        context['url_rollen'] = reverse('Logboek:rollen')
        context['url_uitrol'] = reverse('Logboek:uitrol')
        context['url_records'] = reverse('Logboek:records')
        context['url_accounts'] = reverse('Logboek:accounts')
        context['url_clusters'] = reverse('Logboek:clusters')
        context['url_competitie'] = reverse('Logboek:competitie')
        context['url_nhbstructuur'] = reverse('Logboek:nhbstructuur')
        context['url_accommodaties'] = reverse('Logboek:accommodaties')

        context['filter_url'] = self.base_url

        # extra knop tonen om zoekterm te wissen
        zoekterm = self.request.GET.get('zoekterm', '')
        if zoekterm:
            context['zoekterm'] = zoekterm
            context['unfiltered_url'] = reverse('Logboek:%s' % self.filter)

            zoekterm = "?zoekterm=%s" % quote_plus(zoekterm)
            context['url_rest'] += zoekterm
            context['url_rollen'] += zoekterm
            context['url_uitrol'] += zoekterm
            context['url_records'] += zoekterm
            context['url_accounts'] += zoekterm
            context['url_clusters'] += zoekterm
            context['url_competitie'] += zoekterm
            context['url_nhbstructuur'] += zoekterm
            context['url_accommodaties'] += zoekterm

        menu_dynamics(self.request, context, actief='hetplein')
        return context
예제 #13
0
    def get(self, request, *args, **kwargs):
        """ deze functie wordt aangeroepen als een GET request ontvangen is
        """
        if not request.user.is_authenticated:
            # gebruiker is niet ingelogd, dus zou hier niet moeten komen
            return HttpResponseRedirect(reverse('Plein:plein'))

        account = request.user
        needs_vhpg, _ = account_needs_vhpg(account)
        if not needs_vhpg:
            # gebruiker heeft geen VHPG nodig
            return HttpResponseRedirect(reverse('Plein:plein'))

        form = AccepteerVHPGForm()
        context = {'form': form}
        menu_dynamics(request, context, actief="wissel-van-rol")
        return render(request, TEMPLATE_VHPG_ACCEPTATIE, context)
예제 #14
0
    def get(self, request, *args, **kwargs):
        """ deze functie wordt aangeroepen als een GET request ontvangen is
        """
        # informatie doorgifte van de registratie view naar deze view
        # gaat via server-side session-variabelen
        try:
            login_naam = request.session['login_naam']
            partial_email = request.session['partial_email']
        except KeyError:
            # url moet direct gebruikt zijn
            raise PermissionDenied()

        # geef de data door aan de template
        context = {'login_naam': login_naam, 'partial_email': partial_email}
        menu_dynamics(request, context)

        return render(request, TEMPLATE_AANGEMAAKT, context)
예제 #15
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)

        account = self.request.user
        sporter = (account.sporter_set.select_related(
            'bij_vereniging', 'bij_vereniging__regio',
            'bij_vereniging__regio__rayon').all())[0]
        voorkeuren, _ = SporterVoorkeuren.objects.get_or_create(
            sporter=sporter)

        alle_bogen = BoogType.objects.all()

        context['sporter'] = sporter
        context['records'], context['show_loc'] = self._find_records(sporter)
        context['histcomp'] = self._find_histcomp_scores(sporter, alle_bogen)
        context['url_bondspas'] = reverse('Bondspas:toon-bondspas')

        context['toon_bondscompetities'] = False
        if sporter.bij_vereniging and not sporter.bij_vereniging.geen_wedstrijden:
            context['toon_bondscompetities'] = True

            context['competities'] = comps = self._find_competities(voorkeuren)

            regiocomps, moet_bogen_kiezen, gebruik_knoppen = self._find_regiocompetities(
                comps, sporter, voorkeuren, alle_bogen)
            context['regiocompetities'] = regiocomps
            context['moet_bogen_kiezen'] = moet_bogen_kiezen
            context['gebruik_knoppen'] = gebruik_knoppen

            context['regiocomp_scores'] = self._find_scores(sporter)

            context['gemiddelden'], context[
                'heeft_ags'] = self._find_gemiddelden(sporter, alle_bogen)

            if not voorkeuren.voorkeur_meedoen_competitie:
                if regiocomps is None:
                    # niet ingeschreven en geen interesse
                    context['toon_bondscompetities'] = False

            context['speelsterktes'] = self._find_speelsterktes(sporter)

        self._get_contact_gegevens(sporter, context)

        menu_dynamics(self.request, context, actief='sporter-profiel')
        return context
예제 #16
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)

        context['show_vhpg'], context['vhpg'] = account_needs_vhpg(
            self.request.user)
        context['huidige_rol'] = rol_get_beschrijving(self.request)

        if self.account.is_staff:
            context['url_admin_site'] = reverse('admin:index')
            context['url_login_as'] = reverse('Account:account-wissel')

        # als we hier komen weten is de tweede factor gekoppeld is
        # de controle van de tweede factor moet misschien nog uitgevoerd worden
        context['show_otp_controle'] = not account_rechten_is_otp_verified(
            self.request)

        if context['show_vhpg']:
            context['show_beheerder_intro'] = True

        context['wiki_2fa_url'] = reverse_handleiding(self.request,
                                                      settings.HANDLEIDING_2FA)
        context['wiki_rollen'] = reverse_handleiding(
            self.request, settings.HANDLEIDING_ROLLEN)
        context['wiki_intro_nieuwe_beheerders'] = reverse_handleiding(
            self.request, settings.HANDLEIDING_INTRO_NIEUWE_BEHEERDERS)

        # snel wissel kaartje voor BB
        if self.rol_nu == Rollen.ROL_BB:
            context['heeft_alle_rollen'] = self._maak_alle_rollen()
            context['url_wissel_naar_sec'] = reverse('Functie:wissel-naar-sec')

        # bedoeld voor de testsuite, maar kan geen kwaad
        context['insert_meta'] = True
        context['meta_rol'] = rol2url[self.rol_nu]
        if self.functie_nu:
            context[
                'meta_functie'] = self.functie_nu.beschrijving  # template doet html escaping
        else:
            context['meta_functie'] = ""

        eval_open_taken(self.request, forceer=True)

        menu_dynamics(self.request, context, actief='wissel-van-rol')
        return context
예제 #17
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)

        context['url_stap_1'] = reverse('Functie:otp-koppelen-stap1')
        context['url_stap_3'] = reverse('Functie:otp-koppelen-stap3')

        account = self.request.user

        # haal de QR code op (en alles wat daar voor nodig is)
        account_otp_prepare_koppelen(account)
        context['qrcode'] = qrcode_get(account)

        tmp = account.otp_code.lower()
        context['otp_secret'] = " ".join(
            [tmp[i:i + 4] for i in range(0, len(tmp), 4)])

        menu_dynamics(self.request, context, actief="wissel-van-rol")
        return context
예제 #18
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)

        # gegarandeerd ingelogd door test_func()
        account = self.request.user
        sporter = account.sporter_set.all()[0]

        geboorte_jaar = sporter.geboorte_datum.year

        huidige_jaar, leeftijd, wlst, clst, lkl_volgende_competitie = bereken_leeftijdsklassen(geboorte_jaar)
        context['huidige_jaar'] = huidige_jaar
        context['leeftijd'] = leeftijd
        context['wlst'] = wlst
        context['clst'] = clst
        context['lkl_volgende_competitie'] = lkl_volgende_competitie

        menu_dynamics(self.request, context, actief='sporter-profiel')
        return context
예제 #19
0
파일: menu.py 프로젝트: RamonvdW/nhb-apps
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)
예제 #20
0
    def get(self, request, *args, **kwargs):
        """ deze functie wordt aangeroepen om de GET request af te handelen """
        context = dict()

        try:
            wedstrijd_pk = int(str(
                kwargs['wedstrijd_pk'])[:6])  # afkappen voor de veiligheid
            wedstrijd = (KalenderWedstrijd.objects.get(pk=wedstrijd_pk))
        except KalenderWedstrijd.DoesNotExist:
            raise Http404('Wedstrijd niet gevonden')

        if self.rol_nu == Rollen.ROL_HWL and wedstrijd.organiserende_vereniging != self.functie_nu.nhb_ver:
            raise PermissionDenied('Wedstrijd niet van jouw vereniging')

        context['wed'] = wedstrijd
        sessies = (
            wedstrijd.sessies.prefetch_related('wedstrijdklassen').annotate(
                aanmeldingen_count=Count('sporters')).order_by(
                    'datum', 'tijd_begin'))
        for sessie in sessies:
            sessie.klassen_ordered = sessie.wedstrijdklassen.order_by(
                'volgorde')

            sessie.url_wijzig = reverse('Kalender:wijzig-sessie',
                                        kwargs={
                                            'wedstrijd_pk': wedstrijd.pk,
                                            'sessie_pk': sessie.pk
                                        })
        # for
        context['sessies'] = sessies

        if wedstrijd.status != WEDSTRIJD_STATUS_GEANNULEERD:
            context['url_nieuwe_sessie'] = reverse(
                'Kalender:wijzig-sessies',
                kwargs={'wedstrijd_pk': wedstrijd.pk})

        if self.rol_nu == Rollen.ROL_HWL:
            context['url_terug'] = reverse('Kalender:vereniging')
        else:
            context['url_terug'] = reverse('Kalender:manager')

        menu_dynamics(self.request, context, actief='kalender')
        return render(request, self.template_name, context)
예제 #21
0
    def get(self, request, *args, **kwargs):
        """ deze functie wordt aangeroepen als een GET request ontvangen is
        """
        if not request.user.is_authenticated:
            # gebruiker is niet ingelogd, dus stuur terug naar af
            return HttpResponseRedirect(reverse('Plein:plein'))

        account = request.user
        if not account.otp_is_actief:
            # gebruiker heeft geen OTP koppeling
            return HttpResponseRedirect(reverse('Plein:plein'))

        # waar eventueel naartoe na de controle?
        next_url = request.GET.get('next', '')

        form = OTPControleForm(initial={'next_url': next_url})
        context = {'form': form}
        menu_dynamics(request, context, actief="wissel-van-rol")
        return render(request, TEMPLATE_OTP_CONTROLE, context)
예제 #22
0
파일: views.py 프로젝트: RamonvdW/nhb-apps
    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)

        volg_nr = self.kwargs['nummer']  # parameter guaranteed by urlconf
        discipline = self.kwargs['discipline']

        # zoek het specifieke record erbij
        try:
            spec = IndivRecord.objects.get(volg_nr=volg_nr,
                                           discipline=discipline)
        except IndivRecord.DoesNotExist:
            # dat was geen valide record nummer
            raise Http404('Record niet gevonden')

        # voeg informatie toe voor de template
        spec.gesl_str = gesl2str[spec.geslacht]
        spec.disc_str = disc2str[spec.discipline]
        spec.lcat_str = lcat2str[spec.leeftijdscategorie]
        spec.makl_str = makl2str[spec.materiaalklasse]

        spec.op_pagina = "specifiek_record_%s-%s" % (discipline, volg_nr)

        # zoek de andere records die hier bij horen, aflopend gesorteerd op datum
        # hier zit ook het record zelf bij
        objs = IndivRecord.objects.filter(
            geslacht=spec.geslacht,
            discipline=spec.discipline,
            leeftijdscategorie=spec.leeftijdscategorie,
            materiaalklasse=spec.materiaalklasse,
            soort_record=spec.soort_record,
            para_klasse=spec.para_klasse).order_by('-datum')

        for obj in objs:
            obj.is_specifieke_record = (obj.volg_nr == spec.volg_nr)
            self.set_url_specifiek(obj)
        # for

        context['obj_record'] = spec
        context['object_list'] = objs

        menu_dynamics(self.request, context, actief='records')
        return context
예제 #23
0
    def get(self, request, *args, **kwargs):
        """ called by the template system to get the context data for the template """
        context = dict()

        # pak de 50 meest recente wedstrijden
        wedstrijden = (KalenderWedstrijd
                       .objects
                       .order_by('-datum_begin')[:50])

        for wed in wedstrijden:
            wed.disc_str = WEDSTRIJD_DISCIPLINE_TO_STR[wed.discipline]
            wed.status_str = WEDSTRIJD_STATUS_TO_STR[wed.status]
            wed.status_val_op = (wed.status == WEDSTRIJD_STATUS_WACHT_OP_GOEDKEURING)
            wed.url_wijzig = reverse('Kalender:wijzig-wedstrijd', kwargs={'wedstrijd_pk': wed.pk})
            wed.url_sessies = reverse('Kalender:wijzig-sessies', kwargs={'wedstrijd_pk': wed.pk})
        # for

        context['wedstrijden'] = wedstrijden

        menu_dynamics(self.request, context, actief='kalender')
        return render(request, self.template_name, context)
예제 #24
0
    def post(request, *args, **kwargs):
        """ deze functie wordt aangeroepen als een POST request ontvangen is.
            dit is gekoppeld aan het drukken op de knop van het formulier.
        """
        if not request.user.is_authenticated:
            # gebruiker is niet ingelogd, dus stuur terug naar af
            return HttpResponseRedirect(reverse('Plein:plein'))

        form = AccepteerVHPGForm(request.POST)
        if form.is_valid():
            # hier komen we alleen als de checkbox gezet is
            account = request.user
            account_vhpg_is_geaccepteerd(account)
            schrijf_in_logboek(account, 'Rollen', 'VHPG geaccepteerd')
            account_rechten_eval_now(request, account)
            return HttpResponseRedirect(reverse('Functie:wissel-van-rol'))

        # checkbox is verplicht --> nog een keer
        context = {'form': form}
        menu_dynamics(request, context, actief="hetplein")
        return render(request, TEMPLATE_VHPG_ACCEPTATIE, context)
예제 #25
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)

        context['ver'] = self.functie_nu.nhb_ver

        # zoek de deelcompetitie waar de regio teams voor in kunnen stellen
        context['deelcomp_rk'] = deelcomp_rk = self._get_deelcomp_rk(
            kwargs['rk_deelcomp_pk'])

        context[
            'rk_bk_klassen_vastgesteld'] = is_vastgesteld = deelcomp_rk.competitie.klassengrenzen_vastgesteld_rk_bk

        context['rk_teams'] = self._get_rk_teams(deelcomp_rk, is_vastgesteld)

        if not is_vastgesteld:
            context['url_nieuw_team'] = reverse(
                'CompRayon:teams-rk-nieuw',
                kwargs={'rk_deelcomp_pk': deelcomp_rk.pk})

        menu_dynamics(self.request, context, actief='vereniging')
        return context
예제 #26
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)

        jaar = kwargs['jaar']  # int
        maand = self._maand_to_nr(kwargs['maand'])  # str
        self._validate_jaar_maand(jaar, maand)

        context['datum'] = date(year=jaar, month=maand, day=1)
        context['url_prev_maand'], context[
            'url_next_maand'] = self._get_prev_next_urls(jaar, maand)

        datum_vanaf = date(year=jaar, month=maand, day=1)
        if maand == 12:
            maand = 1
            jaar += 1
        else:
            maand += 1
        datum_voor = date(year=jaar, month=maand, day=1)

        wedstrijden = (
            KalenderWedstrijd.objects.select_related('locatie').filter(
                datum_begin__gte=datum_vanaf,
                datum_begin__lt=datum_voor,
                status__in=(
                    WEDSTRIJD_STATUS_GEACCEPTEERD,
                    WEDSTRIJD_STATUS_GEANNULEERD)).order_by('datum_begin'))
        for wed in wedstrijden:
            if wed.status == WEDSTRIJD_STATUS_GEANNULEERD:
                wed.titel = '[GEANNULEERD] ' + wed.titel
            else:
                wed.url_details = reverse('Kalender:wedstrijd-info',
                                          kwargs={'wedstrijd_pk': wed.pk})
        # for
        context['wedstrijden'] = wedstrijden

        menu_dynamics(self.request, context, 'kalender')
        return context
예제 #27
0
    def get(self, request, *args, **kwargs):
        context = dict()
        context['locatie'] = locatie = self.get_locatie()
        context['ver'] = ver = self.get_vereniging()
        context['readonly'] = readonly = self._check_access(locatie, ver)

        context['disc'] = disc = list()
        disc.append(('disc_outdoor', 'Outdoor', locatie.discipline_outdoor))
        disc.append(('disc_indoor', 'Indoor', locatie.discipline_indoor))
        disc.append(('disc_25m1p', '25m 1pijl', locatie.discipline_25m1pijl))
        disc.append(('disc_veld', 'Veld', locatie.discipline_veld))
        disc.append(('disc_3d', '3D', locatie.discipline_3d))
        disc.append(('disc_run', 'Run archery', locatie.discipline_run))
        disc.append(('disc_clout', 'Clout', locatie.discipline_clout))

        # aantal banen waar uit gekozen kan worden, voor gebruik in de template
        context['banen'] = [nr for nr in range(2, 24 + 1)
                            ]  # 1 baan = handmatig in .dtl

        # aantal banen waar uit gekozen kan worden, voor gebruik in de template
        context['buiten_banen'] = [nr for nr in range(2, 80 + 1)
                                   ]  # 1 baan = handmatig in .dtl
        context['buiten_max_afstand'] = [nr for nr in range(30, 100 + 1, 10)]

        if not readonly:
            context['url_opslaan'] = reverse('Vereniging:locatie-details',
                                             kwargs={
                                                 'vereniging_pk': ver.pk,
                                                 'locatie_pk': locatie.pk
                                             })

            context['url_verwijder'] = context['url_opslaan']

        context['url_terug'] = reverse('Vereniging:externe-locaties',
                                       kwargs={'vereniging_pk': ver.pk})

        menu_dynamics(self.request, context, actief='vereniging')
        return render(request, self.template_name, context)
예제 #28
0
    def get(request, *args, **kwargs):
        """
            deze functie handelt het GET verzoek af met de extra parameter 'code',
            zoekt de bijbehorende data op en roept de juiste dispatcher aan.

            Om de tijdelijke URL te gebruiken moet een POST gedaan worden.
            Hiervoor bieden we een pagina met een knop aan.
        """
        context = {}
        menu_dynamics(request, context, 'hetplein')

        url_code = kwargs['code']
        context['url'] = reverse('Overig:tijdelijke-url',
                                 kwargs={'code': url_code})

        objs = SiteTijdelijkeUrl.objects.filter(url_code=url_code)

        context['activiteit'] = '???'

        # kijk of deze tijdelijke url al verlopen is
        match = False
        now = timezone.now()
        for obj in objs:
            if obj.geldig_tot > now:
                # bruikbare match gevonden
                match = True
                context['activiteit'] = beschrijving_activiteit(obj)
            else:
                # verlopen link
                obj.delete()
        # for

        if not match:
            template = TEMPLATE_TIJDELIJKEURL_FOUT
        else:
            template = TEMPLATE_TIJDELIJKEURL_GOED

        return render(request, template, context)
예제 #29
0
def receive_bevestiging_accountemail(request, obj):
    """ deze functie wordt aangeroepen als een tijdelijke url gevolgd wordt
        om een email adres te bevestigen, zowel de eerste keer als wijziging van email.
            obj is een AccountEmail object.
        We moeten een url teruggeven waar een http-redirect naar gedaan kan worden.
    """
    account_email_bevestiging_ontvangen(obj)

    # schrijf in het logboek
    from_ip = get_safe_from_ip(request)
    account = obj.account

    msg = "Bevestigd vanaf IP %s voor account %s" % (
        from_ip, account.get_account_full_name())
    schrijf_in_logboek(account=account,
                       gebruikte_functie="Bevestig e-mail",
                       activiteit=msg)

    context = dict()
    if not request.user.is_authenticated:
        context['show_login'] = True
    menu_dynamics(request, context)
    return render(request, TEMPLATE_BEVESTIGD, context)
예제 #30
0
    def post(self, request, *args, **kwargs):
        """ deze functie handelt het http-post verzoek af
            als de gebruiker op de Verstuur knop drukt krijgt deze functie de ingevoerde data.
        """
        form = SiteFeedbackForm(data=request.POST)
        if form.is_valid():
            try:
                op_pagina = request.session['feedback_op_pagina']
                gebruiker = request.session['feedback_gebruiker']
            except KeyError:
                pass
            else:
                store_feedback(gebruiker, op_pagina,
                               form.cleaned_data['bevinding'],
                               form.cleaned_data['feedback'])
                return redirect('Overig:feedback-bedankt')

        context = {
            'form': form,
            'formulier_url': reverse('Overig:feedback-formulier')
        }  # URL voor de POST
        menu_dynamics(request, context)
        return render(request, self.template_name, context)