fix: fix datetime handling for alembic migrations view
this should ensure the column sorting works, and adds normal rendering for the form fields
This commit is contained in:
parent
16131cd256
commit
6c634303ae
1 changed files with 14 additions and 3 deletions
|
|
@ -44,18 +44,22 @@ from webhelpers2.html import tags, HTML
|
||||||
|
|
||||||
from wuttaweb.views import View, MasterView
|
from wuttaweb.views import View, MasterView
|
||||||
from wuttaweb.forms import widgets
|
from wuttaweb.forms import widgets
|
||||||
|
from wuttaweb.forms.schema import WuttaDateTime
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def normalize_revision(config, rev): # pylint: disable=missing-function-docstring
|
def normalize_revision(
|
||||||
|
config, rev, json_safe=False
|
||||||
|
): # pylint: disable=missing-function-docstring
|
||||||
app = config.get_app()
|
app = config.get_app()
|
||||||
|
|
||||||
created = None
|
created = None
|
||||||
if match := re.search(r"Create Date: (\d{4}-\d{2}-\d{2}[\d:\. ]+\d)", rev.longdoc):
|
if match := re.search(r"Create Date: (\d{4}-\d{2}-\d{2}[\d:\. ]+\d)", rev.longdoc):
|
||||||
created = datetime.datetime.fromisoformat(match.group(1))
|
created = datetime.datetime.fromisoformat(match.group(1))
|
||||||
created = app.localtime(created, from_utc=False)
|
created = app.localtime(created, from_utc=False)
|
||||||
|
if json_safe:
|
||||||
created = app.render_datetime(created)
|
created = app.render_datetime(created)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -92,7 +96,7 @@ class AlembicDashboardView(View):
|
||||||
current_heads = context.get_current_heads()
|
current_heads = context.get_current_heads()
|
||||||
|
|
||||||
def normalize(rev):
|
def normalize(rev):
|
||||||
normal = normalize_revision(self.config, rev)
|
normal = normalize_revision(self.config, rev, json_safe=True)
|
||||||
normal["is_current"] = rev.revision in current_heads
|
normal["is_current"] = rev.revision in current_heads
|
||||||
|
|
||||||
normal["revision"] = tags.link_to(
|
normal["revision"] = tags.link_to(
|
||||||
|
|
@ -318,6 +322,9 @@ class AlembicMigrationView(MasterView): # pylint: disable=abstract-method
|
||||||
g.set_label("is_head", "Head")
|
g.set_label("is_head", "Head")
|
||||||
g.set_renderer("is_head", self.render_is_head)
|
g.set_renderer("is_head", self.render_is_head)
|
||||||
|
|
||||||
|
# created
|
||||||
|
g.set_renderer("created", "datetime")
|
||||||
|
|
||||||
def render_is_head( # pylint: disable=missing-function-docstring,unused-argument
|
def render_is_head( # pylint: disable=missing-function-docstring,unused-argument
|
||||||
self, rev, field, value
|
self, rev, field, value
|
||||||
):
|
):
|
||||||
|
|
@ -369,6 +376,10 @@ class AlembicMigrationView(MasterView): # pylint: disable=abstract-method
|
||||||
# path
|
# path
|
||||||
f.set_widget("path", widgets.CopyableTextWidget())
|
f.set_widget("path", widgets.CopyableTextWidget())
|
||||||
|
|
||||||
|
# created
|
||||||
|
f.set_node("created", WuttaDateTime())
|
||||||
|
f.set_widget("created", widgets.WuttaDateTimeWidget(self.request))
|
||||||
|
|
||||||
def make_create_form(self): # pylint: disable=empty-docstring
|
def make_create_form(self): # pylint: disable=empty-docstring
|
||||||
""" """
|
""" """
|
||||||
alembic = make_alembic_config(self.config)
|
alembic = make_alembic_config(self.config)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue