From 6306567ebde365a8ac04298914dbe7601c867295 Mon Sep 17 00:00:00 2001 From: Oliver Zander Date: Thu, 21 Aug 2025 10:02:19 +0200 Subject: [PATCH] removed intern view --- foerderbarometer/settings.py | 2 - input/tests/__init__.py | 14 ------- input/urls.py | 6 +-- input/views.py | 76 +----------------------------------- 4 files changed, 2 insertions(+), 96 deletions(-) diff --git a/foerderbarometer/settings.py b/foerderbarometer/settings.py index 52efab6..7261d32 100644 --- a/foerderbarometer/settings.py +++ b/foerderbarometer/settings.py @@ -152,8 +152,6 @@ OAUTH_URL_WHITELISTS = ['/admin'] OAUTH_COOKIE_SESSION_ID = 'sso_session_id' -INTERN_VIEW_ENABLED = env('INTERN_VIEW_ENABLED', False) - IF_EMAIL = env('IF_EMAIL', 'community@wikimedia.de') SURVEY_EMAIL = env('SURVEY_EMAIL', 'sandro.halank@wikimedia.de') diff --git a/input/tests/__init__.py b/input/tests/__init__.py index 4e86ec4..4152ba5 100755 --- a/input/tests/__init__.py +++ b/input/tests/__init__.py @@ -1,5 +1,4 @@ from datetime import date -from unittest import skipUnless from django.test import TestCase, Client from django.conf import settings @@ -33,12 +32,6 @@ class TestWithoutLogin(TestCase): #print (response.content) self.assertContains(response,'Sourcecode') - @skipUnless(settings.INTERN_VIEW_ENABLED, 'Intern view is disabled.') - def test_access_denied(self): - '''test if /intern redirects to login page if not logged in''' - response = self.client.get('/intern', follow=True) - self.assertContains(response,'password') - def _postform(self, data, expected_form): '''helper function to manage the Wizzard''' response = self.client.post('/', data, follow=False) @@ -98,13 +91,6 @@ class TestWithLogin(TestCase): self.client = Client() self.user = User.objects.create_user('vladimir', 'vladimir@reiherzehe.com', 'reiherzehe') - @skipUnless(settings.INTERN_VIEW_ENABLED, 'Intern view is disabled.') - def test_access(self): - '''test if /intern gives an answer''' - self.assertEqual(self.client.login(username='testuser', password='testpasswd'), True) - response = self.client.get('/intern') - self.assertContains(response,'Übersicht aller Förderangebote') - def test_project_of_year(self): ''' test if the finance id is resettet ad start of year''' acc = Account.objects.create() diff --git a/input/urls.py b/input/urls.py index be7f86d..807e9bf 100755 --- a/input/urls.py +++ b/input/urls.py @@ -1,7 +1,6 @@ -from django.conf import settings from django.urls import path -from .views import ExternView, index, done, authorize, deny, InternView, export +from .views import ExternView, index, done, authorize, deny, export urlpatterns = [ path('', index, name='index'), @@ -11,6 +10,3 @@ urlpatterns = [ path('authorize//', authorize, name='authorize'), path('deny//', deny, name='deny'), ] - -if settings.INTERN_VIEW_ENABLED: # pragma: no cover - urlpatterns.insert(2, path('intern', InternView.as_view(), name='intern')) diff --git a/input/views.py b/input/views.py index ece0b5e..d0d6887 100755 --- a/input/views.py +++ b/input/views.py @@ -1,4 +1,3 @@ -from datetime import date from smtplib import SMTPException from django.shortcuts import render @@ -9,19 +8,14 @@ from django.core.mail import BadHeaderError, EmailMultiAlternatives from django.template.loader import get_template from django.conf import settings from django.contrib.auth.decorators import login_required -from django.contrib.auth.mixins import LoginRequiredMixin from .forms import ( - INTERN_CHOICES, - ProjectForm, ExternForm, LibraryForm, ELiteratureForm, SoftwareForm, IFGForm, LiteratureForm, - HonoraryCertificateForm, - InternForm, TravelForm, EmailForm, ListForm, @@ -75,78 +69,10 @@ def deny(request, choice, pk): def done(request): return HttpResponse("Deine Anfrage wurde gesendet. Du erhältst in Kürze eine E-Mail-Benachrichtigung mit deinen Angaben. Für alle Fragen kontaktiere bitte das Team Communitys und Engagement unter community@wikimedia.de.") + def index(request): return render(request, 'input/index.html') -class InternView(LoginRequiredMixin, CookieWizardView): # pragma: no cover - '''This View is for WMDE-employees only''' - - template_name = 'input/extern.html' - form_list = [InternForm, ProjectForm] - - def get_form(self, step=None, data=None, files=None): - '''this function determines which part of the multipart form is - displayed next''' - - if step is None: - step = self.steps.current - print ("get_form() step " + step) - - if step == '1': - prev_data = self.get_cleaned_data_for_step('0') - choice = prev_data.get('choice') - print(f'choice detection: {INTERN_CHOICES[choice]}') - if choice == 'HON': - form = HonoraryCertificateForm(data) - elif choice == 'PRO': - form = ProjectForm(data) - elif choice == 'TRAV': - form = TravelForm(data) - else: - raise RuntimeError(f'ERROR! UNKNOWN FORMTYPE {choice} in InternView') - self.choice = choice - else: - form = super().get_form(step, data, files) - form.fields['realname'].help_text = mark_safe("Vor- und Zuname (Realname), Wer hat das Projekt beantragt?
\ - Wer ist Hauptansprechperson? Bei WMDE-MAs immer „(WMDE)“,
\ - bei externen Partnern „(PART)“ hinzufügen.") - return form - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - if hasattr(self, 'choice'): - context["choice"] = INTERN_CHOICES[self.choice] - return context - - def done(self, form_list, **kwargs): - print('InternView.done() reached') - # gather data from all forms - data = {} - for form in form_list: - data = {**data, **form.cleaned_data} - - if data['choice'] == 'LIT': - if data['selfbuy'] == 'TRUE': - data['selfbuy_give_data'] = 'False' - - # write data to database - form = form.save(commit=False) - # we have to copy the data from the first form here - # this is ugly code. how can we copy this without explicit writing? - # i found no way to access the ModelForm.Meta.exclude-tupel - form.realname = data['realname'] - # form.username = data['username'] - form.email = data['email'] - form.granted = True - form.granted_date = date.today() - - if data['choice'] == 'LIT': - form.selfbuy_give_data = data['selfbuy_give_data'] - - form.save() - - return done(self.request) - class ExternView(CookieWizardView): '''This View is for Volunteers'''