Skip to content

Commit

Permalink
Refactor templates and macros, add more field types
Browse files Browse the repository at this point in the history
  • Loading branch information
ahosgood committed Aug 20, 2024
1 parent 88de58f commit 44273cd
Show file tree
Hide file tree
Showing 48 changed files with 426 additions and 152 deletions.
15 changes: 9 additions & 6 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,14 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build
- uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
virtualenvs-path: .venv
- name: Install dependencies
run: poetry install --no-interaction --no-root
- name: Build package
run: python -m build
run: poetry build
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
run: poetry publish
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
FROM ghcr.io/nationalarchives/tna-python:latest
FROM ghcr.io/nationalarchives/tna-python-dev:latest

COPY --chown=app . .

RUN tna-build

CMD ["tna-run", "test:app"]
ENV FLASK_APP="test:app"

CMD ["tna-run", "$FLASK_APP"]
19 changes: 18 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
[tool.poetry]
name = "tna-frontend-jinja"
version = "0.2.8"
description = ""
description = "TNA Frontend Jinja templates"
authors = ["Andrew Hosgood <[email protected]>"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/nationalarchives/tna-frontend-jinja"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"Topic :: Software Development :: Code Generators",
"Topic :: Software Development :: User Interfaces",
"Topic :: Text Processing :: Markup :: HTML",
]
packages = [{include = "tna_frontend_jinja"}]
include = ["**/*.html"]
exclude = ["test"]

[tool.poetry.dependencies]
python = "^3.12"
Expand All @@ -19,6 +33,9 @@ optional = true
[tool.poetry.group.dev.dependencies]
email-validator = "^2.2.0"

[tool.poetry.urls]
"Bug Tracker" = "https://github.com/nationalarchives/tna-frontend-jinja/issues"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Expand Down
15 changes: 0 additions & 15 deletions setup.cfg

This file was deleted.

34 changes: 0 additions & 34 deletions setup.py

This file was deleted.

2 changes: 1 addition & 1 deletion test/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import os

from flask import Flask
from jinja2 import ChoiceLoader, PackageLoader, PrefixLoader
from jinja2 import ChoiceLoader, PackageLoader
from tna_frontend_jinja.wtforms.widgets import WTFormsHelpers

from .components import bp as components_bp
Expand Down
2 changes: 1 addition & 1 deletion test/components/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flask import Blueprint

bp = Blueprint("components", __name__, template_folder="test-templates")
bp = Blueprint("components", __name__)

from test.components import routes # noqa: E402,F401
70 changes: 35 additions & 35 deletions test/components/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,166 +5,166 @@


def render_component(template):
params = request.args.get("params")
context = json.loads(params) if params else {}
return render_template(template, context=context)
params_str = request.args.get("params")
params = json.loads(params_str) if params_str else {}
return render_template(template, params=params)


@bp.route("/accordion")
def accordion():
return render_component("accordion.html")
return render_component("components/accordion.html")


@bp.route("/breadcrumbs")
def breadcrumbs():
return render_component("breadcrumbs.html")
return render_component("components/breadcrumbs.html")


@bp.route("/button")
def button():
return render_component("button.html")
return render_component("components/button.html")


@bp.route("/card")
def card():
return render_component("card.html")
return render_component("components/card.html")


@bp.route("/checkboxes")
def checkboxes():
return render_component("checkboxes.html")
return render_component("components/checkboxes.html")


@bp.route("/compound-filters")
def compound_filters():
return render_component("compound-filters.html")
return render_component("components/compound-filters.html")


@bp.route("/cookie-banner")
def cookie_banner():
return render_component("cookie-banner.html")
return render_component("components/cookie-banner.html")


@bp.route("/date-input")
def date_input():
return render_component("date-input.html")
return render_component("components/date-input.html")


@bp.route("/date-search")
def date_search():
return render_component("date-search.html")
return render_component("components/date-search.html")


@bp.route("/details")
def details():
return render_component("details.html")
return render_component("components/details.html")


@bp.route("/error-summary")
def error_summary():
return render_component("error-summary.html")
return render_component("components/error-summary.html")


@bp.route("/files-list")
def files_list():
return render_component("files-list.html")
return render_component("components/files-list.html")


@bp.route("/footer")
def footer():
return render_component("footer.html")
return render_component("components/footer.html")


@bp.route("/gallery")
def gallery():
return render_component("gallery.html")
return render_component("components/gallery.html")


@bp.route("/global-header")
def globalHeader():
return render_component("global-header.html")
return render_component("components/global-header.html")


@bp.route("/header")
def header():
return render_component("header.html")
return render_component("components/header.html")


@bp.route("/hero")
def hero():
return render_component("hero.html")
return render_component("components/hero.html")


@bp.route("/index-grid")
def index_grid():
return render_component("index-grid.html")
return render_component("components/index-grid.html")


@bp.route("/pagination")
def pagination():
return render_component("pagination.html")
return render_component("components/pagination.html")


@bp.route("/phase-banner")
def phase_banner():
return render_component("phase-banner.html")
return render_component("components/phase-banner.html")


@bp.route("/picture")
def picture():
return render_component("picture.html")
return render_component("components/picture.html")


@bp.route("/quick-filters")
def quick_filters():
return render_component("quick-filters.html")
return render_component("components/quick-filters.html")


@bp.route("/radios")
def radios():
return render_component("radios.html")
return render_component("components/radios.html")


@bp.route("/records-list")
def records_list():
return render_component("records-list.html")
return render_component("components/records-list.html")


@bp.route("/search-field")
def search_field():
return render_component("search-field.html")
return render_component("components/search-field.html")


@bp.route("/select")
def select():
return render_component("select.html")
return render_component("components/select.html")


@bp.route("/sidebar")
def sidebar():
return render_component("sidebar.html")
return render_component("components/sidebar.html")


@bp.route("/skip-link")
def skip_link():
return render_component("skip-link.html")
return render_component("components/skip-link.html")


@bp.route("/tabs")
def tabs():
return render_component("tabs.html")
return render_component("components/tabs.html")


@bp.route("/text-input")
def text_input():
return render_component("text-input.html")
return render_component("components/text-input.html")


@bp.route("/textarea")
def textarea():
return render_component("textarea.html")
return render_component("components/textarea.html")


@bp.route("/warning")
def warning():
return render_component("warning.html")
return render_component("components/warning.html")
2 changes: 0 additions & 2 deletions test/components/test-templates/button.html

This file was deleted.

2 changes: 0 additions & 2 deletions test/components/test-templates/text-input.html

This file was deleted.

Loading

0 comments on commit 44273cd

Please sign in to comment.