Commit ebd3594f by aagusti

perbaikan edit

1 parent e25c106e
...@@ -424,7 +424,8 @@ def main(global_config, **settings): ...@@ -424,7 +424,8 @@ def main(global_config, **settings):
""" This function returns a Pyramid WSGI application. """ This function returns a Pyramid WSGI application.
""" """
engine = engine_from_config(settings, 'sqlalchemy.') engine = engine_from_config(
settings, 'sqlalchemy.', client_encoding='utf8', convert_unicode=True)
DBSession.configure(bind=engine) DBSession.configure(bind=engine)
LogDBSession.configure(bind=engine) LogDBSession.configure(bind=engine)
Base.metadata.bind = engine Base.metadata.bind = engine
......
...@@ -477,7 +477,7 @@ div.col-md-6 { ...@@ -477,7 +477,7 @@ div.col-md-6 {
padding: 7px !important; padding: 7px !important;
} }
.form-horizontal .checkbox, .form-horizontal .radio { .form-horizontal .checkbox, .form-horizontal .radio, .form-horizontal .radio-inline{
padding: 0px; padding: 0px;
} }
...@@ -515,7 +515,7 @@ div.col-md-6 { ...@@ -515,7 +515,7 @@ div.col-md-6 {
} }
.checkbox label, .radio label { .checkbox label, .radio label, .radio-inline {
font-size: 10px !important; font-size: 10px !important;
} }
......
...@@ -223,6 +223,7 @@ class BaseView(object): ...@@ -223,6 +223,7 @@ class BaseView(object):
if self.list_schema: if self.list_schema:
allow_edit = kwargs.get("allow_edit", True) allow_edit = kwargs.get("allow_edit", True)
allow_delete = kwargs.get("allow_delete", True) allow_delete = kwargs.get("allow_delete", True)
state_save = kwargs.get("state_save", False)
schema = self.list_schema() schema = self.list_schema()
schema = schema.bind(request=self.req) schema = schema.bind(request=self.req)
list_url = kwargs.get("list_url", None) list_url = kwargs.get("list_url", None)
...@@ -234,7 +235,8 @@ class BaseView(object): ...@@ -234,7 +235,8 @@ class BaseView(object):
buttons=self.list_buttons, buttons=self.list_buttons,
request=self.req, request=self.req,
allow_edit=allow_edit, allow_edit=allow_edit,
allow_delete=allow_delete) allow_delete=allow_delete,
state_save=state_save)
resources = table.get_widget_resources() resources = table.get_widget_resources()
# resources=dict(css="", js="") # resources=dict(css="", js="")
return dict(form=table.render(), scripts="", css=resources["css"], return dict(form=table.render(), scripts="", css=resources["css"],
...@@ -537,18 +539,18 @@ class BaseView(object): ...@@ -537,18 +539,18 @@ class BaseView(object):
resources = form.get_widget_resources() resources = form.get_widget_resources()
if request.POST: if request.POST:
if 'save' in request.POST: if 'save' in request.POST:
log.debug("Save Edit") # log.debug("Save Edit")
log.debug(dict(request.POST.items())) # log.debug(dict(request.POST.items()))
log.debug(request.POST) # log.debug(request.POST)
controls = request.POST.items() controls = request.POST.items()
log.debug(controls) # log.debug(controls)
# log.debug(dict(controls)) # log.debug(dict(controls))
# log.debug(list(controls)) # log.debug(list(controls))
try: try:
controls = form.validate(controls) controls = form.validate(controls)
except ValidationFailure as e: except ValidationFailure as e:
log.debug(f"Edit Error: {str(e.error)}") # log.debug(f"Edit Error: {str(e.error)}")
log.debug(f"Edit Data: {e.cstruct}") # log.debug(f"Edit Data: {e.cstruct}")
form.set_appstruct(e.cstruct) form.set_appstruct(e.cstruct)
return dict(form=form.render(), return dict(form=form.render(),
table=table and table.render() or None, table=table and table.render() or None,
...@@ -557,10 +559,9 @@ class BaseView(object): ...@@ -557,10 +559,9 @@ class BaseView(object):
c = dict(controls) c = dict(controls)
self.save_request(c, row) self.save_request(c, row)
return self.after_edit(row=row, **kwargs) return self.after_edit(row=row, **kwargs)
else:
return self.next_edit(form, row=row) return self.next_edit(form, row=row)
return self.route_list()
values = self.get_values(row) values = self.get_values(row)
form.set_appstruct(values) form.set_appstruct(values)
form = self.before_edit(form) form = self.before_edit(form)
......
...@@ -432,7 +432,9 @@ def reset_password_validator(form, value): ...@@ -432,7 +432,9 @@ def reset_password_validator(form, value):
def security_code_age(user): def security_code_age(user):
now = create_now() now = create_now()
return now - user.security_code_date if user.security_code_date:
return now - user.security_code_date
return timedelta(minutes=1)
def send_email_security_code( def send_email_security_code(
......
...@@ -80,10 +80,7 @@ ...@@ -80,10 +80,7 @@
url: "${url}" + value, url: "${url}" + value,
success: function (res) { success: function (res) {
if (res) { if (res) {
console.log(res);
$.each(res, function (key, value) { $.each(res, function (key, value) {
console.log(key);
console.log(value);
$("#${slave}").append('<option value="' + key + '">' + value + '</option>'); $("#${slave}").append('<option value="' + key + '">' + value + '</option>');
}); });
} else { } else {
......
...@@ -109,6 +109,7 @@ class DeTable(field.Field): ...@@ -109,6 +109,7 @@ class DeTable(field.Field):
paginates='true', paginates='true',
params="", params="",
server_side='true', server_side='true',
state_save=True,
data=[], data=[],
allow_edit=True, allow_edit=True,
allow_delete=True, allow_delete=True,
...@@ -246,6 +247,7 @@ class DeTable(field.Field): ...@@ -246,6 +247,7 @@ class DeTable(field.Field):
self.sorts = sorts self.sorts = sorts
self.paginates = paginates self.paginates = paginates
self.filters = filters self.filters = filters
self.state_save = json.dumps(state_save)
class Button(object): class Button(object):
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
allow_edit allow_edit|field.allow_edit; allow_edit allow_edit|field.allow_edit;
allow_delete allow_delete|field.allow_delete; allow_delete allow_delete|field.allow_delete;
allow_view allow_view|field.allow_view; allow_view allow_view|field.allow_view;
state_save state_save|field.state_save;
" "
tal:attributes="style style; class css_class; attributes|field.widget.attributes|{};" tal:attributes="style style; class css_class; attributes|field.widget.attributes|{};"
i18n:domain="detable" i18n:domain="detable"
...@@ -129,7 +130,7 @@ ...@@ -129,7 +130,7 @@
dom: '<"row"<"col-md-8"<"toolbar">Bl><"col-md-4"fr>>tip', dom: '<"row"<"col-md-8"<"toolbar">Bl><"col-md-4"fr>>tip',
processing: true, processing: true,
serverSide: ${server_side}, serverSide: ${server_side},
stateSave: false, stateSave: ${state_save},
scrollCollapse: true, scrollCollapse: true,
sort: ${sorts}, sort: ${sorts},
info: false, info: false,
......
...@@ -107,9 +107,9 @@ class User(UserMixin, BaseModel, DefaultModel, Base): ...@@ -107,9 +107,9 @@ class User(UserMixin, BaseModel, DefaultModel, Base):
def kode(self): def kode(self):
pass pass
@classmethod # @classmethod
def query(cls): # def query(cls):
return DBSession.query(cls) # return DBSession.query(cls)
@classmethod @classmethod
def get_by_email(cls, email): def get_by_email(cls, email):
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!