Commit e0a8c44f by aa.gusti

perbaikan alembic helpers

1 parent 0b8e072d
......@@ -694,8 +694,18 @@ class BaseView(object):
def get_captcha_url(self):
return get_urls("/captcha/") + get_captcha(self.req)
def update_value(self, value, cstruct):
for k in cstruct:
val = cstruct.get(k)
if type(val) is dict:
value[k] = self.update_value(value[k], val)
elif val:
value[k] = cstruct.get(k)
return value
def view_add(self, **kwargs):
# bindings = self.get_bindings()
form = self.get_form(self.add_schema, **kwargs)
resources = form.get_widget_resources()
is_object = kwargs.get("is_object", self.is_object)
......@@ -716,11 +726,14 @@ class BaseView(object):
if f.name == "captcha":
e.cstruct[f.name] = self.get_captcha_url()
# if e.cstruct[f.name]:
for k in value:
if not e.cstruct.get(k):
e.cstruct[k] = value[k]
# cstruct = {}
value = self.update_value(value, e.cstruct)
# for k in cstruct:
# if not e.cstruct.get(k):
# e.cstruct[k] = value[k]
# value.update(e.cstruct)
form.set_appstruct(e.cstruct)
# value.update(cstruct)
form.set_appstruct(value)
return self.returned_form(form, table, **kwargs)
values = dict(c)
......
......@@ -230,7 +230,7 @@ class AutocompleteMsInputWidget(AutocompleteInputWidget):
url = ""
slave = ""
template = "autocomplete_input_ms.pt"
template = "autocomplete_input_ms"
_pstruct_schema = SchemaNode(
Mapping(),
......
......@@ -42,12 +42,19 @@ def table_has_seq(table, name, schema=None):
return has_seq
def fields_update(table, field, typ, schema=None, *args):
def fields_update(table, field, typ, schema=None, **kw):
context = op.get_context()
# helpers = context.opts['helpers']
# if not helpers.table_has_column(table, field, schema):
if not table_has_column(table, field, schema):
op.add_column(table, sa.Column(field, typ), schema=schema)
nullable = kw.get("nullable", None)
if nullable != None and nullable == False:
default = kw.get("default")
if default != None:
op.execute(
f"UPDATE {schema}.{table} SET {field} = {default}")
op.alter_column(table, field, nullable=False, schema=schema)
def seq_update(table, seq, schema=None, *args):
......@@ -59,4 +66,4 @@ def seq_update(table, seq, schema=None, *args):
statement = f"SELECT setval('{schema}.{seq}', (SELECT MAX(id) FROM {schema}.{table}))"
op.execute(statement)
statement = f"alter table {schema}.{table} alter column id set default nextval('{schema}.{seq}')"
op.execute(statement)
\ No newline at end of file
op.execute(statement)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!