2020-10-22 14:02:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  datetime  import  date 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-08 13:31:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-21 12:27:16 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								from  django . db  import  models 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 09:56:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . utils . html  import  format_html 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-21 12:27:16 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 09:36:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								EMAIL_STATES  =  { ' NONE ' :  ' noch keine Mail versendet ' , 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                     ' INF ' :  ' die Benachrichtigung zur Projektabschlussmail wurde versendet ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                     ' CLOSE ' :  ' die Projektabschlussmail wurde versendet ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                     ' END ' :  ' alle automatischen Mails, auch surveyMail, wurden versendet ' } 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Volunteer ( models . Model ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 15:42:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    realname  =  models . CharField ( max_length = 200 ,  null = True ,  verbose_name = " Realname " , 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-08 13:31:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                help_text = " Bitte gib deinen Vornamen und deinen Nachnamen ein. " ,  default = ' ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 09:56:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    email  =  models . EmailField ( max_length = 200 ,  null = True ,  verbose_name = ' E-Mail-Adresse ' , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 15:46:32 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              help_text = format_html ( ' Bitte gib deine E-Mail-Adresse ein, damit dich<br>Wikimedia Deutschland bei Rückfragen oder für<br>die Zusage kontaktieren kann. ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 14:02:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # the following Fields are not supposed to be edited by users 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-25 15:50:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    granted  =  models . BooleanField ( null = True ,  verbose_name = ' bewilligt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    granted_date  =  models . DateField ( null = True ,  verbose_name = ' bewilligt am ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-12 11:44:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    survey_mail_date  =  models . DateField ( verbose_name = ' Umfragemail wurde verschickt am ' ,  null = True ,  blank = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    mail_state  =  models . CharField ( max_length = 6 ,  choices = EMAIL_STATES . items ( ) ,  default = ' NONE ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    survey_mail_send  =  models . BooleanField ( default = False ,  verbose_name = ' Keine Umfragemail schicken ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-06 11:00:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 10:00:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    @classmethod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    def  set_granted ( cl ,  key ,  b ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        obj  =  cl . objects . get ( pk = key ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        obj . granted  =  b 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 14:02:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        obj . granted_date  =  date . today ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 10:00:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        obj . save ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 10:15:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    class  Meta : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        abstract  =  True 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 09:04:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 09:36:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-25 15:50:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:00:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Extern ( Volunteer ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    '''  abstract basis class for all data entered by extern volunteers  ''' 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 15:42:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    username  =  models . CharField ( max_length = 200 ,  null = True ,  verbose_name = ' Benutzer_innenname ' , 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-25 15:50:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                                help_text = format_html ( " Wikimedia Benutzer_innenname " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:00:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 14:05:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # the following Fields are not supposed to be edited by users 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    service_id  =  models . CharField ( max_length = 15 ,  null = True ,  blank = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    def  save ( self , * args , * * kwargs ) : 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-07 08:29:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # we don't call save with args/kwargs to avoid UNIQUE CONSTRAINT errors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # but maybe there is a better solution? 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-06 14:15:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        super ( ) . save ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 14:05:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        self . service_id  =  type ( self ) . __name__  +  str ( self . pk ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-06 14:15:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        super ( ) . save ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 14:05:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:00:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    class  Meta : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        abstract  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-06 11:00:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  ConcreteExtern ( Extern ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    '''  needed because we can ' t initiate abstract base classes in the view ''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-08 06:00:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Account ( models . Model ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    code  =   models . CharField ( ' Kostenstelle ' ,  max_length = 5 ,  default = " DEF " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                                null = False ,  primary_key  =  True ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-03 12:43:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    description  =  models . CharField ( ' Beschreibung ' ,  max_length = 60 ,  default = ' NO DESCRIPTION ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-07 13:16:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  __str__ ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-08 06:00:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  f " { self . code }   { self . description } " 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-07 13:16:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Project ( Volunteer ) : 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    end_mail_send  =  models . BooleanField ( default = False ,  verbose_name = ' Keine Projektabschlussmail schicken ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 09:58:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    name  =  models . CharField ( max_length = 200 ,  verbose_name = ' Name des Projekts ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    description  =  models . CharField ( max_length = 500 ,  verbose_name = " Kurzbeschreibung " ,  null = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-03 12:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    start  =  models . DateField ( ' Startdatum ' ,  null = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 11:53:39 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    end  =  models . DateField ( ' Erwartetes Projektende ' ,  null = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-12 09:48:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    otrs  =  models . URLField ( max_length = 300 ,  null = True ,  verbose_name = ' OTRS-Link ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    plan  =  models . URLField ( max_length = 2000 ,  null = True ,  blank = True ,  verbose_name = " Link zum Förderplan " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    page  =  models . URLField ( max_length = 2000 ,  null = True ,  blank = True ,  verbose_name = " Link zur Projektseite " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 09:58:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    urls  =  models . CharField ( max_length = 2000 ,  null = True ,  blank = True ,  verbose_name = " Weitere Links " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    group  =  models . CharField ( max_length = 2000 ,  null = True ,  blank = True ,  verbose_name = " Mitorganisierende " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    location  =  models . CharField ( max_length = 2000 ,  null = True ,  blank = True ,  verbose_name = " Ort/Adresse/Location " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    participants_estimated  =  models . IntegerField ( blank = True ,  null = True ,  verbose_name = ' Teilnehmende angefragt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    participants_real  =  models . IntegerField ( blank = True ,  null = True ,  verbose_name = ' Teilnehmende ausgezählt ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 10:56:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    insurance  =  models . BooleanField ( default = False ,  verbose_name = ' Haftpflichtversicherung ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    insurance_technic  =  models . BooleanField ( default = False ,  verbose_name = ' Technikversicherung Ausland ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    support  =  models . CharField ( max_length = 300 ,  blank = True ,  null = True ,  verbose_name = ' Betreuungsperson und Vertretung ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    cost  =  models . IntegerField ( blank = True ,  null = True ,  verbose_name = ' Kosten ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-01 14:21:25 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    account  =  models . ForeignKey ( ' Account ' ,  on_delete = models . CASCADE ,  null = True ,  to_field = ' code ' ,  db_constraint  =  False ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 10:56:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    granted_from  =  models . CharField ( max_length = 100 , null = True , verbose_name = ' Bewilligt von ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    notes  =  models . TextField ( max_length = 1000 , null = True , blank = True , verbose_name = ' Anmerkungen ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 14:02:59 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # the following Fields are not supposed to be edited by users 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-28 14:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    pid  =  models . CharField ( max_length = 15 ,  null = True ,  blank = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    status  =  models . CharField ( max_length = 3 , choices = ( ( ' RUN ' ,  ' läuft ' ) , ( ' END ' , ' beendet ' ) , ( ' NOT ' , ' nicht stattgefunden ' ) ) , default = ' RUN ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 08:43:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    finance_id  =  models . CharField ( max_length = 15 ,  null =  True ,  blank = True ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 10:39:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project_of_year  =  models . IntegerField ( default = 0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    end_quartal  =  models . CharField ( max_length = 15 ,  null = True ,  blank = True ,  verbose_name = " Quartal Projekt Ende " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 10:56:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 13:15:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  save ( self , * args , * * kwargs ) : 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        generate_finance_id = False 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 12:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        ''' we generate the autogenerated fields here ''' 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-07 08:29:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        # we don't call save with args/kwargs to avoid UNIQUE CONSTRAINT errors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        # but maybe there is a better solution? 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-08 13:31:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  not  self . pk : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            print  ( " NO PK THERE " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            generate_finance_id = True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            super ( ) . save ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            orig  =  type ( self ) . objects . get ( pk = self . pk )   # Originaldaten aus der DB abrufen 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  orig . start . year  !=  self . start . year : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                generate_finance_id = True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  orig . account . code  !=  self . account . code : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                if  str ( self . account . code )  ==  ' 21111 ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    generate_finance_id = True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                    self . finance_id  =  str ( self . account . code ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  generate_finance_id : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            print  ( " MUST GENERATE FINANCE ID " ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 10:39:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            year  =  self . start . year 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 10:57:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            projects  =  Project . objects . filter ( start__year = year ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            if  not  projects : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                self . project_of_year  =  1 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                #self.pid = str(self.start.year) + '-' + str(self.account.code) + str(self.project_of_year).zfill(3) 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 10:57:13 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            else : 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                # get the project of year number of latest entry 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 12:14:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                projects  =  projects . order_by ( " -project_of_year " ) [ 0 ] 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                # add one to value of latest entry 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-04 12:14:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                self . project_of_year  =  int ( projects . project_of_year )  +  1 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#                self.pid = str(self.start.year) + '-' + str(self.account.code) + str(self.project_of_year).zfill(3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								            if  str ( self . account . code )  ==  ' 21111 ' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                self . finance_id  =  str ( self . account . code )  +  ' - '  +  str ( self . project_of_year ) . zfill ( 3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                self . finance_id  =  str ( self . account . code ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        print (("Current PID",self.pid)) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  not  self . pid : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            self . pid  =  str ( self . account . code )  +  str ( self . pk ) . zfill ( 8 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            # self.pid = str(self.account.code) + str(self.pk).zfill(3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            print  ( ( " Hallo Leute! Ich save jetzt mal MIT PID DANN!!! " , self . pid ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:53:40 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        if  self . end : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            self . end_quartal  =  f ' Q { self . end . month  / /  4  +  1 } ' 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-05 08:13:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        super ( ) . save ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-06 13:15:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-18 14:34:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 09:04:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  __str__ ( self ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 11:00:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        return  f " { self . pid }   { self . name } " 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 11:31:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 09:36:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:38:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Intern ( Volunteer ) : 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ''' abstract base class for data entry from /intern (except Project) ''' 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-12 09:48:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    request_url  =  models . URLField ( max_length = 2000 ,  verbose_name = ' Antrag (URL) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = ' interne Anmerkungen ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:38:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    class  Meta : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        abstract  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-07 07:42:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  ConcreteVolunteer ( Volunteer ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    '''  needed because we can ' t initiate abstract base classes in the view ''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:38:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  HonoraryCertificate ( Intern ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    '''  this class is also used for accreditations  ''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 12:15:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project  =  models . ForeignKey ( Project ,  null = True ,  blank = True ,  on_delete = models . SET_NULL ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 11:31:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  __str__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  " Certificate for  "  +  self . realname 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 11:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 09:36:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								TRANSPORT_CHOICES  =  { ' BAHN ' :  ' Bahn ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                     ' NONE ' :  ' Keine Fahrtkosten ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                     ' OTHER ' :  ' Sonstiges (mit Begründung) ' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PAYEDBY_CHOICES  =  { ' WMDE ' :  ' WMDE ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                   ' REQU ' :  ' Antragstellender Mensch ' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HOTEL_CHOICES  =  { ' TRUE ' :  format_html ( ' Hotelzimmer benötigt ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' FALSE ' :  format_html ( ' Kein Hotelzimmer benötigt ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								from  django . contrib . contenttypes . models  import  ContentType 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Travel ( Extern ) : 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    # project variable is now null true and blank true, which means it can be saved without project id to be later on filled out by admins 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  models . ForeignKey ( Project ,  on_delete = models . CASCADE ,  null = True ,  blank = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project_name  =  models . CharField ( max_length = 50 ,  null = True ,  blank = True ,  verbose_name = ' Projektname: ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    transport  =  models . CharField ( max_length = 5 ,  choices = TRANSPORT_CHOICES . items ( ) ,  default = ' BAHN ' ,  verbose_name = ' Transportmittel: ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    other_transport  =  models . CharField ( max_length = 200 ,  null = True ,  blank = True ,  verbose_name = ' Sonstige Transportmittel (mit Begründung) ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    travelcost  =  models . CharField ( max_length = 10 ,  default = " 0 " ,  verbose_name = ' Fahrtkosten ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    checkin  =  models . DateField ( blank = True ,  null = True ,  verbose_name = ' Anreise ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    checkout  =  models . DateField ( blank = True ,  null = True ,  verbose_name = ' Abreise ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 13:04:01 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    payed_for_hotel_by  =  models . CharField ( max_length = 4 ,  choices = PAYEDBY_CHOICES . items ( ) ,  blank = True ,  null = True ,  verbose_name = ' Kostenauslage Hotel durch ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    payed_for_travel_by  =  models . CharField ( max_length = 4 ,  choices = PAYEDBY_CHOICES . items ( ) ,  blank = True ,  null = True ,  verbose_name = ' Kostenauslage Fahrt durch ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    hotel  =  models . CharField ( max_length = 10 ,  choices = HOTEL_CHOICES . items ( ) ,  verbose_name = ' Hotelzimmer benötigt: ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = ' Anmerkungen ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    request_url  =  models . URLField ( max_length = 2000 ,  verbose_name = ' Antrag (URL) ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = ' interne Anmerkungen ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project_end  =  models . DateField ( blank = True ,  null = True ,  verbose_name = ' Projektende ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    # use content type model to get the end date for the project foreign key 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    project_end_quartal  =  models . CharField ( max_length = 15 ,  null = True ,  blank = True ,  verbose_name = " Quartal Projekt Ende " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  django . db . models . signals  import  pre_save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  django . dispatch  import  receiver 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@receiver ( pre_save ,  sender = Travel ,  dispatch_uid = " get_project_end " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  getProjectEnd ( sender ,  instance ,  * * kwargs ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    #instance.project_end = instance.project.end 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    if  instance . project : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        instance . project_end  =  instance . project . end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        instance . project_end_quartal  =  instance . project . end_quartal 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# using pre save instead 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#    def save(self,*args,**kwargs): 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        '''we generate the autogenerated fields here''' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        # we don't call save with args/kwargs to avoid UNIQUE CONSTRAINT errors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        # but maybe there is a better solution? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        intern_notes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        project_end = self.checkout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#        super(Travel, self).save(*args,**kwargs) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:38:56 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 10:00:12 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								#abstract base class for Library and IFG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  Grant ( Extern ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:03:27 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    cost  =  models . CharField ( max_length = 10 ,  verbose_name = ' Kosten ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            help_text = " Bitte gib die ungefähr zu erwartenden Kosten in Euro an. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = ' Anmerkungen ' , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:16:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                             help_text = " Bitte gib an wofür Du das Stipendium verwenden willst. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 11:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    class  Meta : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        abstract  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-01 10:30:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								TYPE_CHOICES  =  { ' BIB ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Bibliotheksstipendium "  target= " _blank "  rel= " noopener " >Bibliotheksstipendium</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' ELIT ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#eLiteraturstipendium "  target= " _blank "  rel= " noopener " >eLiteraturstipendium</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' MAIL ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#E-Mail-Adressen "  target= " _blank "  rel= " noopener " >E-Mail-Adresse</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' IFG ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/Gebührenerstattungen_für_Behördenanfragen "  target= " _blank "  rel= " noopener " >Kostenübernahme IFG-Anfrage</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' LIT ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Literaturstipendium "  target= " _blank "  rel= " noopener " >Literaturstipendium</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' LIST ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Mailinglisten "  target= " _blank "  rel= " noopener " >Mailingliste</a> ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           ' TRAV ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:F % C3 % B6rderung/Reisekostenerstattungen "  target= " _blank "  rel= " noopener " >Reisekosten</a> ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-01 10:30:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           ' SOFT ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/Software-Stipendien "  target= " _blank "  rel= " noopener " >Softwarestipendium</a> ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' VIS ' :  format_html ( ' <a href= " https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Visitenkarten "  target= " _blank "  rel= " noopener " >Visitenkarten</a> ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-17 12:06:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           } 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 12:37:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-20 07:35:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# same model is used for Library, ELitStip and Software! 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Library ( Grant ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 11:54:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 09:56:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    type  =  models . CharField ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        max_length = 4 , 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-21 11:27:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        choices = TYPE_CHOICES . items ( ) ,  #attention: actually only BIB, ELIT, SOFT should be used here 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-11 13:50:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        default = ' BIB ' , 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-19 09:56:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    library  =  models . CharField ( max_length = 200 ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 13:25:07 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    duration  =  models . CharField ( max_length = 100 ,  verbose_name = " Dauer " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 11:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  __str__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  self . library 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SELFBUY_CHOICES  =  { ' TRUE ' :  format_html ( ' Ich möchte das Werk selbst kaufen und per Kostenerstattung bei Wikimedia Deutschland abrechnen. ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           ' FALSE ' :  format_html ( ' Ich möchte, dass Wikimedia Deutschland das Werk für mich kauft ' ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 12:47:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Literature ( Grant ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    info  =  models . CharField ( max_length = 500 ,  verbose_name = ' Informationen zum Werk ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            help_text = format_html ( " Bitte gib alle Informationen zum benötigten Werk an,<br> \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            die  eine  eindeutige  Identifizierung  ermöglichen  ( Autor ,  Titel ,  Verlag ,  ISBN ,  . . . ) " )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    source  =  models . CharField ( max_length = 200 ,  verbose_name = ' Bezugsquelle ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                              help_text = " Bitte gib an, wo du das Werk kaufen möchtest. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    selfbuy  =  models . CharField (  max_length = 10 ,  verbose_name = ' Selbstkauf? ' ,  choices = SELFBUY_CHOICES . items ( ) ,  default = ' TRUE ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    selfbuy_give_data  =  models . BooleanField ( verbose_name = format_html ( ' Datenweitergabe erlauben ' ) ,  help_text = format_html ( ' Ich stimme der Weitergabe meiner Daten (Name, Postadresse) an den von mir angegebenen Anbieter/Dienstleister zu. ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    selfbuy_data  =  models . TextField ( max_length = 1000 ,  verbose_name = ' Persönliche Daten sowie Adresse ' ,  default = ' ' , \
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                            help_text = format_html ( " Bitte gib hier alle persönlichen Daten an, die wir benötigen, um das Werk<br> \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            für  dich  zu  kaufen  und  es  dir  anschließend  zu  schicken  ( z . B .  Vorname  Nachname ,  Anschrift ,  < br > \
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                            Telefonnummer ,  E - Mail - Adresse  usw . ) .  Trenne  die  einzelnen  Angaben  durch  Zeilenumbrüche . " )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-22 09:36:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  IFG ( Grant ) : 
							 
						 
					
						
							
								
									
										
										
										
											2021-04-12 09:48:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    url  =  models . URLField ( max_length = 2000 ,  verbose_name = " URL " , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                           help_text = " Bitte gib den Link zu deiner Anfrage bei Frag den Staat an. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-30 12:17:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    def  __str__ ( self ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        return  " IFG-Anfrage von  "  +  self . realname 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DOMAIN_CHOICES  =  { ' PEDIA ' :  ' @wikipedia.de ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' BOOKS ' :  ' @wikibooks.de ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' QUOTE ' :  ' @wikiquote.de ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' SOURCE ' :  ' @wikisource.de ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' VERSITY ' :  ' @wikiversity.de ' , } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  Domain ( Extern ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    domain  =  models . CharField ( max_length = 10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                              choices = DOMAIN_CHOICES . items ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                              default = ' PEDIA ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    class  Meta : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        abstract  =  True 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MAIL_CHOICES  =  { ' REALNAME ' :  ' Vorname.Nachname ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                ' USERNAME ' :  ' Username ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                ' OTHER ' :  ' Sonstiges: ' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								ADULT_CHOICES  =  { ' TRUE ' :  format_html ( ' Ich bin volljährig. ' ) , 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           ' FALSE ' :  format_html ( ' Ich bin noch nicht volljährig. ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								class  Email ( Domain ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 11:37:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    address  =  models . CharField ( max_length = 50 , 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              choices = MAIL_CHOICES . items ( ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 16:46:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              default = ' USERNAME ' ,  verbose_name = ' Adressbestandteil ' , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              help_text = format_html ( " Bitte gib hier den gewünschten Adressbestandteil an,<br>der sich vor der Domain befinden soll. " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 16:46:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 17:02:23 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    other  =  models . CharField ( max_length = 50 , blank = True , null = True ,  verbose_name = " Sonstiges " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    adult  =  models . CharField (  max_length = 10 ,  verbose_name = ' Volljährigkeit ' ,  choices = ADULT_CHOICES . items ( ) ,  default = ' FALSE ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 10:00:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  List ( Domain ) : 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 16:46:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    address  =  models . CharField ( max_length = 50 ,  default = ' NO_ADDRESS ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               verbose_name = " Adressbestandteil für Projektmailingliste " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               help_text = format_html ( " Bitte gib hier den gewünschten Adressbestandteil an,<br>der sich vor der Domain befinden soll. " ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " ) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 11:37:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PROJECT_CHOICE  =  { ' PEDIA ' :  ' Wikipedia ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' SOURCE ' :  ' Wikisource ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' BOOKS ' :  ' Wikibooks ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' QUOTE ' :  ' Wikiquote ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' VERSITY ' :  ' Wikiversity ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' VOYAGE ' :  ' Wikivoyage ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' DATA ' :  ' Wikidata ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' NEWS ' :  ' Wikinews ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                  ' COMMONS ' :  ' Wikimedia Commons ' } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:31:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								BC_VARIANT  =  { ' PIC ' :  ' mit Bild ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              ' NOPIC ' :  ' ohne Bild ' } 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 11:37:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  BusinessCard ( Extern ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    project  =  models . CharField ( max_length = 20 ,  choices = PROJECT_CHOICE . items ( ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:24:51 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                               default = ' PEDIA ' ,  verbose_name = ' Wikimedia-Projekt ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               help_text = ' Für welches Wikimedia-Projekt möchtest Du Visitenkarten? ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    data  =  models . TextField ( max_length = 1000 ,  verbose_name = ' Persönliche Daten für die Visitenkarten ' ,  default = ' ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            help_text = format_html ( " Bitte gib hier alle persönlichen Daten an, und zwar genau so,<br> \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            wie  sie  ( auch  in  der  entsprechenden  Reihenfolge )  auf  den  Visitenkarten  stehen  sollen < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            ( z . B .  Vorname  Nachname ,  Benutzer : / Benutzerin : ,  Benutzer - / - innenname ,  Anschrift , < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            Telefonnummer ,  E - Mail - Adresse  usw . ) .  Trenne  die  einzelnen  Angaben  durch  Zeilenumbrüche . < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            Hinweis :  Telefonnummern  bilden  wir  üblicherweise  im  internationalen  Format  gemäß < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            DIN  5008  ab .  Als  anzugebende  E - Mail - Adresse  empfehlen  wir  dir  eine  Wikimedia - Projekt - < br > \
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                            Adresse ,  die  du  ebenfalls  beantragen  kannst ,  sofern  du  nicht  bereits  eine  besitzt . " )) 
							 
						 
					
						
							
								
									
										
										
										
											2020-10-27 11:37:18 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    variant  =  models . CharField ( max_length = 5 ,  choices = BC_VARIANT . items ( ) , 
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:31:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                               default = ' NOPIC ' ,  verbose_name = ' Variante ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               help_text = format_html ( ' so sehen die Varianten aus: <a href= " https://upload.wikimedia.org/wikipedia/commons/c/cd/Muster_Visitenkarten_WMDE_2018.jpg " > \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               mit  Bild < / a >  < a  href = " https://upload.wikimedia.org/wikipedia/commons/d/d3/Muster_Visitenkarte_WMDE.png " > ohne  Bild < / a > '  )) 
							 
						 
					
						
							
								
									
										
										
										
											2025-08-18 10:11:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:28 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    url_of_pic  =  models . CharField ( max_length = 200 ,  verbose_name = ' Url des Bildes ' ,  default = ' ' ,  help_text = " Bitte gib die Wikimedia-Commons-URL des Bildes an. " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-18 15:31:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    sent_to  =  models . TextField ( max_length = 1000 ,  verbose_name = ' Versandadresse ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                               default = ' ' ,  help_text = " Bitte gib den Namen und die vollständige Adresse ein, an welche die Visitenkarten geschickt werden sollen. " ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-27 17:09:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    send_data_to_print  =  models . BooleanField ( default = False ,  verbose_name = format_html ( ' Datenweitergabe erlauben ' ) ,  help_text = format_html ( ' Hiermit erlaube ich die Weitergabe meiner Daten (Name, Postadresse) an den von Wikimedia<br> Deutschland ausgewählten Dienstleister (z. B. <a href= " wir-machen-druck.de " >wir-machen-druck.de</a>) zum Zwecke des direkten <br> Versands der Druckerzeugnisse an mich. ' ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intern_notes  =  models . TextField ( max_length = 1000 ,  blank = True ,  verbose_name = " interne Anmerkungen " )