Beispiel #1
0
    def parse_params(self, request, *args, **kwargs):
        """
        There are two modes of entering this wizard:
        1. At 'gezin' level
        2. At 'persoon' level
        
        Which level is determined by the 'is_mode_family' flag passed
        on entering this wizard. There is also an additional 'updateWholeFamily'
        flag in the user form.
        """
        
        # Read 'whole family' flag
        is_mode_family = kwargs["is_mode_family"]
        
        if (is_mode_family):
            # Extract gezin ID from url
            gezinId = kwargs["gezinId"]
            
            # Check if gezin already retrieved
            if ("gezin" not in self.storedFields 
                or self.storedFields["gezin"].idgezin != gezinId):
                # Not yet retrieved or someone else. Retrieve.
                gezin = Gezin.objects.get(pk=gezinId)
                
                # Add gezin to stored fields
                self.storedFields["gezin"] = gezin
                
                # Check size of family
                if (len(gezin.persoon_set.all()) == 1):
                    # Can't process this as family
                    is_mode_family = False
                    # Store persoon separately
                    self.storedFields["persoon"] = gezin.persoon_set.get(pk=1)                
        else:
            # Extract persoon Id from url
            persoonId = kwargs["persoonId"]
        
            # Check if persoon already retrieved
            if ("persoon" not in self.storedFields 
                or self.storedFields["persoon"].idpersoon != persoonId):
                # Not yet retrieved or someone else. Retrieve.
                persoon = Persoon.objects.get(pk=persoonId)
            
                # Add persoon to stored fields
                self.storedFields["persoon"] = persoon
            
        self.storedFields["is_mode_family"] = is_mode_family

        # Copy data in stored fields to context        
        self.extra_context.update(self.storedFields)
        
        # Continue in super class
        FormWizard.parse_params(self, request, args, kwargs)
Beispiel #2
0
    def render_template(self, request, form, previous_fields, step, context=None):

        # Authenticate user
        if not request.user.is_authenticated():
            # User is anonymous, redirect to login
            return HttpResponseRedirect("/login?next=" + request.path)        
            
        if (step == 1):
            # Store persoonB from screen 1.
            idpersoon = request.POST["0-idpersoonB"]
            if (idpersoon):
                persoon = Persoon.objects.get(pk=idpersoon)
            else:
                persoon = Persoon()
                persoon.txtachternaam = request.POST["0-txtachternaam"]
                persoon.txtroepnaam = request.POST["0-txtroepnaam"]
                persoon.idgeslacht = Geslacht.objects.get(pk=atoi(request.POST["0-idgeslacht"]))
                persoon.txttussenvoegsels = request.POST["0-txttussenvoegsels"]
                persoon.txtvoorletters = request.POST["0-txtvoorletters"]
            
            # Add persoon to context
            self.storedFields["persoonB"] = persoon
        
            gezinA = self.storedFields["persoonA"].idgezin
            self.storedFields["gezinA"] = gezinA
            
            gezinB = self.storedFields["persoonB"].idgezin
            self.storedFields["gezinB"] = gezinB

        # Copy data in stored fields to context        
        self.extra_context.update(self.storedFields)
        
        return FormWizard.render_template(self, request, form, previous_fields, step)
Beispiel #3
0
 def parse_params(self, request, *args, **kwargs):
     """
     Extract the persoon from the url. To prevent this method from
     retrieving the same persoon in every screen we add a check to
     see if the persoon is already retrieved.
     """
     
     # Extract persoon ID from url
     persoonId = kwargs["persoonId"]
     
     # Check if persoon already retrieved
     if ("persoonA" not in self.storedFields 
         or self.storedFields["persoonA"].idpersoon != persoonId):
         # Not yet retrieved or someone else. Retrieve.
         persoon = Persoon.objects.get(pk=persoonId)
     
         # Add persoon to stored fields
         self.storedFields["persoonA"] = persoon        
     
     # Continue in super class
     FormWizard.parse_params(self, request, args, kwargs)
Beispiel #4
0
 def __init__(self, *args, **kwargs):
     FormWizard.__init__(self, *args, **kwargs)
     setattr(self, "storedFields", {})
Beispiel #5
0
 def render_template(self, request, form, previous_fields, step, context=None):
     # Authenticate user
     if not request.user.is_authenticated():
         # User is anonymous, redirect to login
         return HttpResponseRedirect("/login?next=" + request.path)
     
     elif (step == 2):
         # Page 3: Generate certificate
         certificateType = self.storedFields["certificateType"]
         gemeente = self.storedFields["idvertrokkennaargemeente"]
         
         # Determine mode
         is_mode_family = self.storedFields["is_mode_family"]
         
         if (is_mode_family):
             # Check certificate type
             if (certificateType.txtcode == Attestatie.CODE_GEZINS
                 or certificateType.txtcode == Attestatie.CODE_KERKELIJKEGEGEVENS):
                 # Gezinsattestatie or Kerkelijke gegevens for gezin
                 gezin = self.storedFields["gezin"]
                 
                 # Determine head of the family
                 head = gezin.persoon_set.get(idgezinsrol=GezinsRol.GEZINSHOOFD)
                 
                 # Check if head has partner
                 if (gezin.persoon_set.filter(idgezinsrol=GezinsRol.PARTNER)):
                     # Has partner
                     partner = gezin.persoon_set.get(idgezinsrol=GezinsRol.PARTNER)
                 else:
                     # No partner, create new 'empty' person of other sex
                     partner = Persoon(idgeslacht=Geslacht.objects.get(pk=3 - head.idgeslacht.pk))
                 
                 if (certificateType.txtcode == Attestatie.CODE_GEZINS):
                     template = loader.get_template("KB/wizards/certificates/gezins.html")
                 else:
                     template = loader.get_template("KB/wizards/certificates/kerkelijke_gegevens.html")
                 
                 context = Context({
                     'gezin': gezin,
                     'persoon': head,
                     'partner': partner,
                     'children': gezin.persoon_set.filter(idgezinsrol=GezinsRol.KIND),
                     'gemeente': gemeente
                 })
                 
                 # Create certificate
                 form.certificate = template.render(context)
         else:
             # Person
             persoon = self.storedFields["persoon"]
         
             # Check type of certificate
             if (certificateType.txtcode == Attestatie.CODE_DOOP):
                 template = loader.get_template("KB/wizards/certificates/doop.html")
             elif (certificateType.txtcode == Attestatie.CODE_VERBLIJFS):
                 template = loader.get_template("KB/wizards/certificates/verblijfs.html")
             elif (certificateType.txtcode == Attestatie.CODE_BELIJDENIS):
                 template = loader.get_template("KB/wizards/certificates/belijdenis.html")
             elif (certificateType.txtcode == Attestatie.CODE_KERKELIJKEGEGEVENS):
                 template = loader.get_template("KB/wizards/certificates/kerkelijke_gegevens.html")
                 
             context = Context({
                 'gezin': persoon.idgezin,
                 'persoon': persoon,
                 'gemeente': gemeente
             })
             
             # Create certificate
             form.certificate = template.render(context)
     
     # Copy data in stored fields to context        
     self.extra_context.update(self.storedFields)
     
     return FormWizard.render_template(self, request, form, previous_fields, step)