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,19 +44,23 @@ from webhelpers2.html import tags, HTML
|
|||
|
||||
from wuttaweb.views import View, MasterView
|
||||
from wuttaweb.forms import widgets
|
||||
from wuttaweb.forms.schema import WuttaDateTime
|
||||
|
||||
|
||||
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()
|
||||
|
||||
created = None
|
||||
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 = app.localtime(created, from_utc=False)
|
||||
created = app.render_datetime(created)
|
||||
if json_safe:
|
||||
created = app.render_datetime(created)
|
||||
|
||||
return {
|
||||
"revision": rev.revision,
|
||||
|
|
@ -92,7 +96,7 @@ class AlembicDashboardView(View):
|
|||
current_heads = context.get_current_heads()
|
||||
|
||||
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["revision"] = tags.link_to(
|
||||
|
|
@ -318,6 +322,9 @@ class AlembicMigrationView(MasterView): # pylint: disable=abstract-method
|
|||
g.set_label("is_head", "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
|
||||
self, rev, field, value
|
||||
):
|
||||
|
|
@ -369,6 +376,10 @@ class AlembicMigrationView(MasterView): # pylint: disable=abstract-method
|
|||
# path
|
||||
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
|
||||
""" """
|
||||
alembic = make_alembic_config(self.config)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue