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)
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)
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)
def __init__(self, *args, **kwargs): FormWizard.__init__(self, *args, **kwargs) setattr(self, "storedFields", {})
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)