Add missing attribute handling for ID Card field in registration schema

1 parent 23b5bce8
import logging import logging
from math import tan
import os import os
import re import re
from datetime import datetime from datetime import datetime
...@@ -592,21 +593,23 @@ class BaseView(object): ...@@ -592,21 +593,23 @@ class BaseView(object):
""" """
return self.route_list(**kwargs) return self.route_list(**kwargs)
def returned_form(self, form, table=None, **kwargs): def returned_form(self, form, **kwargs):
table = kwargs.get("table", None)
if self.req.is_xhr: if self.req.is_xhr:
d = self.form2dict(form) d = self.form2dict(form)
import json
return Response(json=d["children"]) return Response(json=d["children"])
resources = form.get_widget_resources() resources = form.get_widget_resources()
readonly = "readonly" in kwargs and kwargs["readonly"] or False readonly = "readonly" in kwargs and kwargs["readonly"] or False
kwargs["readonly"] = readonly kwargs["readonly"] = readonly
is_object = kwargs.get("is_object", self.is_object) is_object = kwargs.get("is_object", self.is_object)
kwargs.pop("table", None)
if dict == type(table): if dict == type(table):
resources["js"].extend(set(table["js"]) - set(resources["js"])) resources["js"].extend(set(table["js"]) - set(resources["js"]))
resources["css"].extend(set(table["css"]) - set(resources["css"])) resources["css"].extend(set(table["css"]) - set(resources["css"]))
table = table["form"] table = table["form"]
if is_object: if is_object:
return dict(form=form, return dict(form=form,
table=table and table.render() or None, table=table and table.render() or None,
scripts=self.form_scripts, scripts=self.form_scripts,
...@@ -798,6 +801,7 @@ class BaseView(object): ...@@ -798,6 +801,7 @@ class BaseView(object):
is_object = kwargs.get("is_object", self.is_object) is_object = kwargs.get("is_object", self.is_object)
kwargs["is_object"] = is_object kwargs["is_object"] = is_object
table = self.get_item_table(**kwargs) table = self.get_item_table(**kwargs)
kwargs["table"] = table
self.ses["readonly"] = False self.ses["readonly"] = False
if self.req.POST: if self.req.POST:
if 'save' in self.req.POST: if 'save' in self.req.POST:
...@@ -822,12 +826,13 @@ class BaseView(object): ...@@ -822,12 +826,13 @@ class BaseView(object):
elif "cancel" in self.req.POST or 'batal' in self.req.POST or "close" in self.req.POST: elif "cancel" in self.req.POST or 'batal' in self.req.POST or "close" in self.req.POST:
self.cancel_act() self.cancel_act()
else: else:
return self.next_add(form, table=table, resources=resources, **kwargs) return self.next_add(form, resources=resources, **kwargs)
return self.route_list(**kwargs) return self.route_list(**kwargs)
values = self.before_add() values = self.before_add()
form.set_appstruct(values) form.set_appstruct(values)
return self.returned_form(form, table, **kwargs) kwargs["table"] = table
return self.returned_form(form, **kwargs)
def save(self, values, user, row=None): def save(self, values, user, row=None):
log.debug("Save") log.debug("Save")
...@@ -941,6 +946,7 @@ class BaseView(object): ...@@ -941,6 +946,7 @@ class BaseView(object):
form = self.get_form(self.edit_schema, **kwargs) form = self.get_form(self.edit_schema, **kwargs)
table = self.get_item_table(parent=row) table = self.get_item_table(parent=row)
kwargs["table"] = table
values = self.get_values(row) values = self.get_values(row)
if request.POST: if request.POST:
if 'save' in request.POST: if 'save' in request.POST:
...@@ -958,10 +964,15 @@ class BaseView(object): ...@@ -958,10 +964,15 @@ class BaseView(object):
e.cstruct[f.name] = self.get_captcha_url() e.cstruct[f.name] = self.get_captcha_url()
values = self.update_value(values, e.cstruct) values = self.update_value(values, e.cstruct)
form.set_appstruct(values) form.set_appstruct(values)
return self.returned_form(form, table, **kwargs) return self.returned_form(form, **kwargs)
c = dict(controls) c = dict(controls)
self.save_request(c, row) self.save_request(c, row)
if self.req.is_xhr:
form.set_appstruct(c)
d = self.form2dict(form)
return Response(json=d["children"])
return self.after_edit(row=row, **kwargs) return self.after_edit(row=row, **kwargs)
return self.next_edit(form, row=row) return self.next_edit(form, row=row)
...@@ -969,7 +980,7 @@ class BaseView(object): ...@@ -969,7 +980,7 @@ class BaseView(object):
form.set_appstruct(values) form.set_appstruct(values)
form = self.before_edit(form) form = self.before_edit(form)
return self.returned_form(form, table, **kwargs) return self.returned_form(form, **kwargs)
def delete_msg(self, row): def delete_msg(self, row):
return f'Data ID {row.id} sudah dihapus.' return f'Data ID {row.id} sudah dihapus.'
......
...@@ -122,6 +122,7 @@ class AddSchema(colander.Schema): ...@@ -122,6 +122,7 @@ class AddSchema(colander.Schema):
FileData(), FileData(),
widget=widget.FileUploadWidget(mem_tmp_store), widget=widget.FileUploadWidget(mem_tmp_store),
title=_("ID Card"), title=_("ID Card"),
missing=colander.drop,
validator=image_validator) validator=image_validator)
if BASE_CLASS.reg_nip: if BASE_CLASS.reg_nip:
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!