2020-10-26 11:34:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  datetime  import  date 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  smtplib  import  SMTPException 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:34:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-21 12:27:16 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								from  django . shortcuts  import  render 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-29 07:53:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . forms  import  modelformset_factory 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-29 09:08:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . http  import  HttpResponse 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  formtools . wizard . views  import  CookieWizardView 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . core . mail  import  send_mail ,  BadHeaderError ,  EmailMultiAlternatives 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 12:00:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . conf  import  settings 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 13:07:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . template . loader  import  get_template 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  django . template  import  Context 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-19 07:45:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . conf  import  settings 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . contrib . auth . decorators  import  login_required 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  django . contrib . auth . mixins  import  LoginRequiredMixin 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 14:38:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . utils . html  import  format_html 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . utils . translation  import  gettext  as  _ 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-22 10:21:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  . forms  import  ProjectForm ,  ExternForm ,  LibraryForm ,  IFGForm ,  LiteratureForm , \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                   HonoraryCertificateForm ,  InternForm ,  TravelForm ,  EmailForm , \
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                   ListForm ,  BusinessCardForm ,  INTERN_CHOICES 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  . models  import  Project ,  TYPE_CHOICES ,  Library ,  Literature ,  Travel ,  IFG ,  BusinessCard ,  Email ,  List 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def  auth_deny ( choice , pk , auth ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  choice  in  ( ' BIB ' ,  ' ELIT ' ,  ' SOFT ' ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Library . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-04 09:44:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' LIT ' : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        Literature . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-04 09:44:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' IFG ' : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        IFG . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' TRAV ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Travel . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' VIS ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        BusinessCard . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' MAIL ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Email . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    elif  choice  ==  ' LIST ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        List . set_granted ( pk , auth ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-04 10:24:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  HttpResponse ( f ' ERROR! UNKNOWN CHOICE TYPE!  { choice } ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    return  False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-19 14:55:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@login_required 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  export ( request ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ''' export the project database to a csv ''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  HttpResponse ( ' WE WANT CSV! ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-04 09:44:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@login_required 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 06:39:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def  authorize ( request ,  choice ,  pk ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:54:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ''' If IF grant a support they click a link in a mail which leads here. 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    We  write  the  granted  field  in  the  database  here  and  set  a  timestamp . ''' 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ret  =  auth_deny ( choice ,  pk ,  True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ret : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  ret 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  HttpResponse ( f " AUTHORIZED! choice:  { choice } , pk:  { pk } " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@login_required 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 06:39:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def  deny ( request ,  choice ,  pk ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:54:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ''' If IF denies a support they click a link in a mail which leads here 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    We  write  the  granted  field  in  the  database  here . ''' 
 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:22:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ret  =  auth_deny ( choice ,  pk ,  False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ret : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  ret 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  HttpResponse ( f " DENIED! choice:  { choice } , pk:  { pk } " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 06:06:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-29 09:08:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def  done ( request ) : 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    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. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:26:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-07 14:13:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def  index ( request ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    return  render ( request ,  ' input/index.html ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  InternView ( LoginRequiredMixin ,  CookieWizardView ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 09:15:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ''' This View is for WMDE-employees only ''' 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:54:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    template_name  =  ' input/extern.html ' 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    form_list  =  [ InternForm ,  ProjectForm ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    def  get_form ( self ,  step = None ,  data = None ,  files = None ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 11:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        ''' this function determines which part of the multipart form is 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        displayed  next ''' 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        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 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            print ( f ' choice detection:  { INTERN_CHOICES [ choice ] } ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  choice  ==  ' HON ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  HonoraryCertificateForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 09:15:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' PRO ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  ProjectForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:38:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' TRAV ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  TravelForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                raise  RuntimeError ( f ' ERROR! UNKNOWN FORMTYPE  { choice }  in InternView ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-19 10:26:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            self . choice  =  choice 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            form  =  super ( ) . get_form ( step ,  data ,  files ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-19 10:26:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            form . fields [ ' realname ' ] . help_text  =  format_html ( " Vor- und Zuname (Realname), Wer hat das Projekt beantragt?<br> \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                                            Wer  ist  Hauptansprechperson ?  Bei  WMDE - MAs  immer  „ ( WMDE ) “ , < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                                            bei  externen  Partnern  „ ( PART ) “  hinzufügen . " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  form 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-19 10:26:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  get_context_data ( self ,  * * kwargs ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        context  =  super ( ) . get_context_data ( * * kwargs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  hasattr ( self ,  ' choice ' ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            context [ " choice " ]  =  INTERN_CHOICES [ self . choice ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  done ( self ,  form_list ,  * * kwargs ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:06:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        print ( ' InternView.done() reached ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # gather data from all forms 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        data  =  { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        for  form  in  form_list : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            data  =  { * * data ,  * * form . cleaned_data } 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  data [ ' choice ' ]  ==  ' LIT ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  data [ ' selfbuy ' ]  ==  ' TRUE ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                data [ ' selfbuy_give_data ' ]  =  ' False ' 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # 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 ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:06:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # form.username = data['username'] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        form . email  =  data [ ' email ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:34:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        form . granted  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        form . granted_date  =  date . today ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  data [ ' choice ' ]  ==  ' LIT ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            form . selfbuy_give_data  =  data [ ' selfbuy_give_data ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 08:24:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        form . save ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  done ( self . request ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 14:38:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# these where used as labels in the second form TYPE_CHOICES is used for the first form and the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# text above the second form. only used for BIB, SOFT, ELIT in the moment 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								LABEL_CHOICES  =  { ' BIB ' :  format_html ( ' Bibliothek ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' ELIT ' :  format_html ( ' Datenbank/Online-Ressource ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' MAIL ' :  format_html ( ' E-Mail-Adresse ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' IFG ' :  format_html ( ' Kostenübernahme IFG-Anfrage ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' LIT ' :  format_html ( ' Literaturstipendium ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' LIST ' :  format_html ( ' Mailingliste ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           ' TRAV ' :  format_html ( ' Reisekosten ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 14:38:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           ' SOFT ' :  format_html ( ' Software ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' VIS ' :  format_html ( ' Visitenkarten ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           } 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:54:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:03:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HELP_CHOICES  =  { ' BIB ' :  format_html ( " In welchem Zeitraum möchtest du recherchieren oder<br>wie lange ist der Bibliotheksausweis gültig? " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                ' ELIT ' :  " Wie lange gilt der Zugang? " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                ' SOFT ' :  " Wie lange gilt die Lizenz? " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  ExternView ( CookieWizardView ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 07:54:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ''' This View is for Volunteers ''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-01 12:08:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    template_name  =  " input/extern.html " 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:06:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    form_list  =  [ ExternForm ,  LibraryForm ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 13:53:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  get_form ( self ,  step = None ,  data = None ,  files = None ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 11:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        ''' this function determines which part of the multipart form is 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        displayed  next ''' 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 07:50:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  step  is  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            step  =  self . steps . current 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        print  ( " get_form() step  "  +  step ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 13:53:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  step  ==  ' 1 ' : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 07:50:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            prev_data  =  self . get_cleaned_data_for_step ( ' 0 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:29:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            choice  =  prev_data . get ( ' choice ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            print ( f ' choice detection in ExternView:  { TYPE_CHOICES [ choice ] } ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:29:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  choice  ==  ' IFG ' : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 07:50:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form  =  IFGForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' notes ' ] . help_text  =  format_html ( " Bitte gib an, wie die gewonnenen Informationen den<br>Wikimedia-Projekten zugute kommen sollen. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:29:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  in  ( ' BIB ' ,  ' SOFT ' ,  ' ELIT ' ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 07:50:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form  =  LibraryForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 14:38:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' library ' ] . label  =  LABEL_CHOICES [ choice ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:16:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' library ' ] . help_text  =  f " Für welche  { LABEL_CHOICES [ choice ] }  gilt das Stipendium? " 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:03:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' duration ' ] . help_text  =  HELP_CHOICES [ choice ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' MAIL ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  EmailForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 16:46:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' domain ' ] . help_text  =  format_html ( " Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailadresse beantragen? " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' LIT ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  LiteratureForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' notes ' ] . help_text  =  " Bitte gib an, wofür du die Literatur verwenden möchtest. " 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' VIS ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  BusinessCardForm ( data ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' LIST ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  ListForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 16:46:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                form . fields [ ' domain ' ] . help_text  =  format_html ( " Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailingliste beantragen? " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            elif  choice  ==  ' TRAV ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                form  =  TravelForm ( data ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:29:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            else : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                raise  RuntimeError ( f ' ERROR! UNKNOWN FORMTYPE  { choice }  in ExternView ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 11:05:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            self . choice  =  choice 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 07:50:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            form  =  super ( ) . get_form ( step ,  data ,  files ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 13:53:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  form 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 13:10:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 11:05:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  get_context_data ( self ,  * * kwargs ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        context  =  super ( ) . get_context_data ( * * kwargs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  hasattr ( self ,  ' choice ' ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 14:19:42 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            context [ " choice " ]  =  TYPE_CHOICES [ self . choice ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 11:05:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-01 10:08:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  done ( self ,  form_list ,  * * kwargs ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        print ( ' ExternView.done() reached ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # gather data from all forms 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        data  =  { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        for  form  in  form_list : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            data  =  { * * data ,  * * form . cleaned_data } 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-25 15:50:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  data [ ' choice ' ]  ==  ' LIT ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  data [ ' selfbuy ' ]  ==  ' TRUE ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                data [ ' selfbuy_give_data ' ]  =  ' False ' 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # write data to database 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        modell  =  form . save ( commit = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 07:31:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # we have to copy the data from the first form here 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # this is a bit ugly code. can we copy this without explicit writing? 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  data [ ' choice ' ]  ==  ' LIT ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            modell . selfbuy_give_data  =  data [ ' selfbuy_give_data ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:33:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  user  :=  self . request . session . get ( ' user ' ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            modell . username  =  user [ ' username ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        modell . realname  =  data [ ' realname ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        modell . email  =  data [ ' email ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:54:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # write type of form in some cases 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:29:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  data [ ' choice ' ]  in  ( ' BIB ' ,  ' ELIT ' ,  ' SOFT ' ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            modell . type  =  data [ ' choice ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-05 11:35:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        form . save ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 08:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # add some data to context for mail templates 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        data [ ' pk ' ]  =  modell . pk 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-19 07:45:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        data [ ' url_prefix ' ]  =  settings . EMAIL_URL_PREFIX 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 14:50:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        data [ ' grant ' ]  =  ( ' LIT ' ,  ' SOFT ' ,  ' ELIT ' ,  ' BIB ' ,  ' IFG ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        data [ ' DOMAIN ' ]  =  ( ' MAIL ' ,  ' LIST ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 09:28:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        data [ ' typestring ' ]  =  TYPE_CHOICES [ data [ ' choice ' ] ] 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 06:06:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 11:15:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # we need to send the following mails here: 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-08 08:21:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        context  =  {  ' data ' :  data  } 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-08 10:38:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        try : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #  - mail with entered data to the Volunteer 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            txt_mail_template1  =  get_template ( ' input/ifg_volunteer_mail.txt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            html_mail_template1  =  get_template ( ' input/ifg_volunteer_mail.html ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-19 07:45:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            subject1 ,  from_email1 ,  to1  =  ' Formular ausgefüllt ' ,  settings . IF_EMAIL ,  data [ ' email ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            text_content1  =  txt_mail_template1 . render ( context ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            html_content1  =  html_mail_template1 . render ( context ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            msg1  =  EmailMultiAlternatives ( subject1 ,  text_content1 ,  from_email1 ,  [ to1 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            msg1 . attach_alternative ( html_content1 ,  " text/html " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            msg1 . send ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #print('ifg volunteer mail would have been sent') 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #send_mail( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    'Formular ausgefüllt', 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #    txt_mail_template1.render(context), 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #    IF_EMAIL, 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    [data['email']], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    fail_silently=False) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ##  - mail to IF with link to accept/decline 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            txt_mail_template  =  get_template ( ' input/if_mail.txt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            html_mail_template  =  get_template ( ' input/if_mail.html ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-19 07:45:14 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            subject ,  from_email ,  to  =  ' Formular ausgefüllt ' ,  settings . IF_EMAIL ,  settings . IF_EMAIL 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            text_content  =  txt_mail_template . render ( context ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            html_content  =  html_mail_template . render ( context ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            msg2  =  EmailMultiAlternatives ( subject ,  text_content ,  from_email ,  [ to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            msg2 . attach_alternative ( html_content ,  " text/html " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            msg2 . send ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #print('if mail would have been sent') 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #send_mail( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    'Formular ausgefüllt', 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #    txt_mail_template.render(context), 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            #    IF_EMAIL, 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    [IF_EMAIL], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            #    fail_silently=False) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            ## raise SMTPException("testing pupose only") 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 14:32:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-08 10:38:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        except  BadHeaderError : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 15:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            modell . delete ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  HttpResponse ( ' Invalid header found. Data not saved! ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        except  SMTPException : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 15:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            modell . delete ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            return  HttpResponse ( ' Error in sending mails (probably wrong adress?). Data not saved! ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 14:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-07 11:15:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-01 12:45:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  done ( self . request )