예제 #1
0
 def dispatch(self, request, *args, **kwargs):
     if not models.get_settings().mag_hr():
         return HttpResponseForbidden()
     else:
         return super(NieuweHR, self).dispatch(request, *args, **kwargs)
예제 #2
0
 def dispatch(self, request, *args, **kwargs):
     if models.get_settings().public:
         return super(SettingsMixin, self).dispatch(request, *args, **kwargs)
     else:
         return HttpResponseForbidden()
예제 #3
0
 def get_context_data(self, **kwargs):
     context = super(HRView, self).get_context_data(**kwargs)
     context['mag'] = models.get_settings().mag_hr() and self.lid == context['voorstel'].eigenaar
     return context
예제 #4
0
def view_home(request):
    lid = check_login(request)
    if lid:
        context = {}
        context['lid'] = lid
        context['pm'] = models.PolitiekeMotie.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['apm'] = models.ActuelePolitiekeMotie.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['org'] = models.Organimo.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['res'] = models.Resolutie.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['am'] = models.Amendement.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['hr'] = models.HRWijziging.objects.filter(eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['count'] = len(context['pm']) + len(context['apm']) + len(context['org']) + len(context['res']) + len(context['am']) + len(context['hr'])
        context['settings'] = models.get_settings()
        context['staff'] = request.user.is_active and request.user.is_staff
        context['publiek'] = get_categorieen(Q(status=models.Stuk.PUBLIEK))
        context['allpm'] = models.PolitiekeMotie.objects.filter(status=models.Stuk.PUBLIEK)
        context['allapm'] = models.ActuelePolitiekeMotie.objects.filter(status=models.Stuk.PUBLIEK)
        context['allorg'] = models.Organimo.objects.filter(status=models.Stuk.PUBLIEK)
        context['allres'] = models.Resolutie.objects.filter(status=models.Stuk.PUBLIEK)
        context['allam'] = models.Amendement.objects.filter(status=models.Stuk.PUBLIEK)
        context['allhr'] = models.HRWijziging.objects.filter(status=models.Stuk.PUBLIEK)
        context['allcount'] = len(context['allpm']) + len(context['allapm']) + len(context['allorg']) + len(context['allres']) + len(context['allam']) + len(context['allhr'])
        return render_to_response("zues/yolo.html", context)

    if request.method == 'POST':
        if getattr(settings, 'RECAPTCHA_PUBLIC_KEY', '') == '':
            form = forms.LidnummerForm(request.POST)
        else:
            form = forms.LidnummerRecaptchaForm(request.POST)
        if form.is_valid():
            lidnummer = form.cleaned_data['lidnummer']

            # opzoeken email
            result = generate_lid(int(lidnummer))
            if result is not None:
                lid, to, naam, key = result

                secret_url = reverse('zues:login', kwargs={'key': key, 'lid': lid.lidnummer})
                secret_url = request.build_absolute_uri(secret_url)
                if not settings.DEBUG:
                    secret_url = re.sub(r'^http://', r'https://', secret_url)

                if getattr(settings, 'EMAIL_HOST', '') == '':
                    return HttpResponseRedirect(secret_url)

                subject = '[JD] Toegang voorstelsysteem {}'.format(request.get_host().lower())
                from_email = '*****@*****.**'

                inhoud = []
                inhoud.append('Beste %s,' % naam)
                inhoud.append('')
                inhoud.append('Je hebt toegang gevraagd tot het voorstelsysteem van de Jonge Democraten. ')
                inhoud.append('Dit systeem kun je gebruiken met de volgende persoonlijke geheime URL:')
                inhoud.append(secret_url)
                inhoud.append('')
                inhoud.append('Deze URL kun je ook gebruiken om jouw ingediende voorstellen in te zien, te wijzigen en terug te trekken. Deel deze URL dus niet met anderen!')
                inhoud.append('')
                inhoud.append('Mocht je een nieuwe URL aanvragen via de website, dan wordt de bovenstaande URL automatisch ongeldig.')
                inhoud.append('')
                inhoud.append('Met vrijzinnige groet,')
                inhoud.append('De Jonge Democraten.')
                inhoud = '\n'.join(inhoud)

                msg = EmailMessage(subject, inhoud, from_email=from_email, to=[to])
                msg.send()

            return HttpResponseRedirect('/loginverzonden/')
    else:
        if getattr(settings, 'RECAPTCHA_PUBLIC_KEY', '') == '':
            form = forms.LidnummerForm()
        else:
            form = forms.LidnummerRecaptchaForm()

    context = {'form': form, }
    context.update(csrf(request))

    return render_to_response("zues/home.html", context)
예제 #5
0
 def get_context_data(self, **kwargs):
     context = super(SettingsMixin, self).get_context_data(**kwargs)
     context['settings'] = models.get_settings()
     return context
예제 #6
0
 def dispatch(self, request, *args, **kwargs):
     if not models.get_settings().mag_hr():
         return HttpResponseForbidden()
     else:
         return super(NieuweHR, self).dispatch(request, *args, **kwargs)
예제 #7
0
 def get_context_data(self, **kwargs):
     context = super(HRView, self).get_context_data(**kwargs)
     context['mag'] = models.get_settings().mag_hr(
     ) and self.lid == context['voorstel'].eigenaar
     return context
예제 #8
0
 def dispatch(self, request, *args, **kwargs):
     if models.get_settings().public:
         return super(SettingsMixin, self).dispatch(request, *args,
                                                    **kwargs)
     else:
         return HttpResponseForbidden()
예제 #9
0
 def get_context_data(self, **kwargs):
     context = super(SettingsMixin, self).get_context_data(**kwargs)
     context['settings'] = models.get_settings()
     return context
예제 #10
0
def view_home(request):
    lid = check_login(request)
    if lid:
        context = {}
        context['lid'] = lid
        context['pm'] = models.PolitiekeMotie.objects.filter(
            eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['apm'] = models.ActuelePolitiekeMotie.objects.filter(
            eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['org'] = models.Organimo.objects.filter(eigenaar=lid).exclude(
            status=models.Stuk.VERWIJDERD)
        context['res'] = models.Resolutie.objects.filter(eigenaar=lid).exclude(
            status=models.Stuk.VERWIJDERD)
        context['am'] = models.Amendement.objects.filter(eigenaar=lid).exclude(
            status=models.Stuk.VERWIJDERD)
        context['hr'] = models.HRWijziging.objects.filter(
            eigenaar=lid).exclude(status=models.Stuk.VERWIJDERD)
        context['count'] = len(context['pm']) + len(context['apm']) + len(
            context['org']) + len(context['res']) + len(context['am']) + len(
                context['hr'])
        context['settings'] = models.get_settings()
        context['staff'] = request.user.is_active and request.user.is_staff
        context['publiek'] = get_categorieen(Q(status=models.Stuk.PUBLIEK))
        context['allpm'] = models.PolitiekeMotie.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allapm'] = models.ActuelePolitiekeMotie.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allorg'] = models.Organimo.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allres'] = models.Resolutie.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allam'] = models.Amendement.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allhr'] = models.HRWijziging.objects.filter(
            status=models.Stuk.PUBLIEK)
        context['allcount'] = len(context['allpm']) + len(
            context['allapm']) + len(context['allorg']) + len(
                context['allres']) + len(context['allam']) + len(
                    context['allhr'])
        return render_to_response("zues/yolo.html", context)

    if request.method == 'POST':
        if getattr(settings, 'RECAPTCHA_PUBLIC_KEY', '') == '':
            form = forms.LidnummerForm(request.POST)
        else:
            form = forms.LidnummerRecaptchaForm(request.POST)
        if form.is_valid():
            lidnummer = form.cleaned_data['lidnummer']

            # opzoeken email
            result = generate_lid(int(lidnummer))
            if result is not None:
                lid, to, naam, key = result

                secret_url = reverse('zues:login',
                                     kwargs={
                                         'key': key,
                                         'lid': lid.lidnummer
                                     })
                secret_url = request.build_absolute_uri(secret_url)
                if not settings.DEBUG:
                    secret_url = re.sub(r'^http://', r'https://', secret_url)

                if getattr(settings, 'EMAIL_HOST', '') == '':
                    return HttpResponseRedirect(secret_url)

                subject = '[JD] Toegang voorstelsysteem {}'.format(
                    request.get_host().lower())
                from_email = '*****@*****.**'

                inhoud = []
                inhoud.append('Beste %s,' % naam)
                inhoud.append('')
                inhoud.append(
                    'Je hebt toegang gevraagd tot het voorstelsysteem van de Jonge Democraten. '
                )
                inhoud.append(
                    'Dit systeem kun je gebruiken met de volgende persoonlijke geheime URL:'
                )
                inhoud.append(secret_url)
                inhoud.append('')
                inhoud.append(
                    'Deze URL kun je ook gebruiken om jouw ingediende voorstellen in te zien, te wijzigen en terug te trekken. Deel deze URL dus niet met anderen!'
                )
                inhoud.append('')
                inhoud.append(
                    'Mocht je een nieuwe URL aanvragen via de website, dan wordt de bovenstaande URL automatisch ongeldig.'
                )
                inhoud.append('')
                inhoud.append('Met vrijzinnige groet,')
                inhoud.append('De Jonge Democraten.')
                inhoud = '\n'.join(inhoud)

                msg = EmailMessage(subject,
                                   inhoud,
                                   from_email=from_email,
                                   to=[to])
                msg.send()

            return HttpResponseRedirect('/loginverzonden/')
    else:
        if getattr(settings, 'RECAPTCHA_PUBLIC_KEY', '') == '':
            form = forms.LidnummerForm()
        else:
            form = forms.LidnummerRecaptchaForm()

    context = {
        'form': form,
    }
    context.update(csrf(request))

    return render_to_response("zues/home.html", context)