From fc4de589019a6bd9eaefe751a188a02509ec6e31 Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Thu, 6 Jul 2023 23:55:54 +0000 Subject: [PATCH] refactor(media_item): use includes over tags everywhere --- .../templates/core/includes/media_item.html | 14 +++++ .../core/templates/core/tags/media_item.html | 9 --- benefits/core/templatetags/__init__.py | 0 benefits/core/templatetags/core.py | 58 ------------------- .../media_item__start__bankcardcheck.html | 23 +++++--- ...a_item__start__idcardcheck__login_gov.html | 25 ++++++++ ...start__idcardcheck__mst_courtesy_card.html | 17 ++++++ ...dia_item__start__idcardcheck__veteran.html | 26 +++++++++ .../templates/eligibility/start.html | 1 - .../eligibility/start__login_gov.html | 19 +----- .../eligibility/start__mst_courtesy_card.html | 12 +--- .../templates/eligibility/start__veteran.html | 21 +------ 12 files changed, 99 insertions(+), 126 deletions(-) create mode 100644 benefits/core/templates/core/includes/media_item.html delete mode 100644 benefits/core/templates/core/tags/media_item.html delete mode 100644 benefits/core/templatetags/__init__.py delete mode 100644 benefits/core/templatetags/core.py create mode 100644 benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__login_gov.html create mode 100644 benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__mst_courtesy_card.html create mode 100644 benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__veteran.html diff --git a/benefits/core/templates/core/includes/media_item.html b/benefits/core/templates/core/includes/media_item.html new file mode 100644 index 000000000..32cd34624 --- /dev/null +++ b/benefits/core/templates/core/includes/media_item.html @@ -0,0 +1,14 @@ +
  • +
    + {% block icon %} + {% endblock icon %} +
    +
    +

    + {% block heading %} + {% endblock heading %} +

    + {% block body %} + {% endblock body %} +
    +
  • diff --git a/benefits/core/templates/core/tags/media_item.html b/benefits/core/templates/core/tags/media_item.html deleted file mode 100644 index 267f10b88..000000000 --- a/benefits/core/templates/core/tags/media_item.html +++ /dev/null @@ -1,9 +0,0 @@ -{% load core %} - -
  • -
    {% include "core/includes/icon__direct_args.html" with name=icon alt=icon_alt %}
    -
    - {% if heading %}

    {{ heading }}

    {% endif %} - {{ body }} -
    -
  • diff --git a/benefits/core/templatetags/__init__.py b/benefits/core/templatetags/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/benefits/core/templatetags/core.py b/benefits/core/templatetags/core.py deleted file mode 100644 index 69ca27139..000000000 --- a/benefits/core/templatetags/core.py +++ /dev/null @@ -1,58 +0,0 @@ -from django import template - -register = template.Library() - - -@register.tag -def media_item(parser, token): - """ - Defines the compile function for the tag `{% media_item %}{% endmedia_item %}` - """ - # token.contents is the tag name + all arguments - # "media_item icon='name' icon_alt='alt' heading=variable" - # split and discard the first (tag name) - token_contents = token.split_contents()[1:] - args = ["icon", "icon_alt", "heading"] - # token_contents are string "key=value" pairs, convert to dict - kwargs = {} - for token_arg in token_contents: - k, v = token_arg.split("=") - if k in args: - kwargs[k] = v - - # parse the rest of the tag contents - nodelist = parser.parse(("endmedia_item",)) - # "consume" the end tag - # https://docs.djangoproject.com/en/4.2/howto/custom-template-tags/#parsing-until-another-block-tag - parser.delete_first_token() - - return MediaItemNode(nodelist, args, **kwargs) - - -class MediaItemNode(template.Node): - """ - Template Node representing an instance of a tag `{% media_item %}{% endmedia_item %}`. - """ - - def __init__(self, nodelist, arg_names, **kwargs): - # the nodelist represents the tag inner content - self.nodelist = nodelist - self.arg_names = arg_names - # create template variables for each tag argument - for name in arg_names: - val = kwargs.get(name) - if val: - setattr(self, name, template.Variable(val)) - - def render(self, context): - # render the nodelist (tag inner content) into a new "body" context - ctx = template.Context({"body": self.nodelist.render(context)}, autoescape=context.autoescape) - # add the tag arguments to context, .resolve() each template.Variable - for arg in self.arg_names: - try: - ctx[arg] = getattr(self, arg).resolve(context) - except AttributeError: - pass - # render the tag template - t = context.template.engine.get_template("core/tags/media_item.html") - return t.render(ctx) diff --git a/benefits/eligibility/templates/eligibility/includes/media_item__start__bankcardcheck.html b/benefits/eligibility/templates/eligibility/includes/media_item__start__bankcardcheck.html index 5fb414074..cfac67ebe 100644 --- a/benefits/eligibility/templates/eligibility/includes/media_item__start__bankcardcheck.html +++ b/benefits/eligibility/templates/eligibility/includes/media_item__start__bankcardcheck.html @@ -1,12 +1,17 @@ +{% extends "core/includes/media_item.html" %} {% load i18n %} -{% load core %} -{% translate "core.icons.bankcardcheck" context "image alt text" as icon_alt %} -{% translate "eligibility.pages.start.bankcard.title" as heading %} -{% translate "eligibility.pages.start.bankcard.text" as details %} +{% block icon %} + {% translate "core.icons.bankcardcheck" context "image alt text" as icon_alt %} + {% include "core/includes/icon__direct_args.html" with name="bankcardcheck" alt=icon_alt %} +{% endblock icon %} -{% media_item icon="bankcardcheck" icon_alt=icon_alt heading=heading %} -
    -

    {{ details }}

    -
    -{% endmedia_item %} +{% block heading %} + {% translate "eligibility.pages.start.bankcard.title" %} +{% endblock heading %} + +{% block body %} +
    +

    {% translate "eligibility.pages.start.bankcard.text" %}

    +
    +{% endblock body %} diff --git a/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__login_gov.html b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__login_gov.html new file mode 100644 index 000000000..7ce6808aa --- /dev/null +++ b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__login_gov.html @@ -0,0 +1,25 @@ +{% extends "core/includes/media_item.html" %} + +{% load i18n %} + +{% block icon %} + {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} + {% include "core/includes/icon__direct_args.html" with name="idcardcheck" alt=icon_alt %} +{% endblock icon %} + +{% block heading %} + {% translate "eligibility.pages.start.login_gov.start_item.heading" %} +{% endblock heading %} + +{% block body %} +
    +

    {% translate "eligibility.pages.start.login_gov.start_item.details" %}

    +
    +
      +
    • {% translate "eligibility.pages.start.login_gov.required_items[0]" %}
    • +
    • {% translate "eligibility.pages.start.login_gov.required_items[1]" %}
    • +
    • {% translate "eligibility.pages.start.login_gov.required_items[2]" %}
    • +
    +
    +
    +{% endblock body %} diff --git a/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__mst_courtesy_card.html b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__mst_courtesy_card.html new file mode 100644 index 000000000..a991b4c72 --- /dev/null +++ b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__mst_courtesy_card.html @@ -0,0 +1,17 @@ +{% extends "core/includes/media_item.html" %} +{% load i18n %} + +{% block icon %} + {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} + {% include "core/includes/icon__direct_args.html" with name="idcardcheck" alt=icon_alt %} +{% endblock icon %} + +{% block heading %} + {% translate "eligibility.pages.start.mst_cc.start_item.heading" %} +{% endblock heading %} + +{% block body %} +
    +

    {% translate "eligibility.pages.start.mst_cc.start_item.details" %}

    +
    +{% endblock body %} diff --git a/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__veteran.html b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__veteran.html new file mode 100644 index 000000000..ad59c95cb --- /dev/null +++ b/benefits/eligibility/templates/eligibility/includes/media_item__start__idcardcheck__veteran.html @@ -0,0 +1,26 @@ +{% extends "core/includes/media_item.html" %} +{% load i18n %} + +{% block icon %} + {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} + {% include "core/includes/icon__direct_args.html" with name="bankcardcheck" alt=icon_alt %} +{% endblock icon %} + +{% block heading %} + {% translate "eligibility.pages.start.veteran.start_item.heading" %} +{% endblock heading %} + +{% block body %} +
    +

    {% translate "eligibility.pages.start.veteran.start_item.details" %}

    +
    +
      +
    • {% translate "eligibility.pages.start.veteran.required_items[0]" %}
    • +
    • {% translate "eligibility.pages.start.veteran.required_items[1]" %}
    • +
    • {% translate "eligibility.pages.start.veteran.required_items[2]" %}
    • +
    • {% translate "eligibility.pages.start.veteran.required_items[3]" %}
    • +
    +

    {% translate "eligibility.pages.start.veteran.start_item.secondary_details" %}

    +
    +
    +{% endblock body %} diff --git a/benefits/eligibility/templates/eligibility/start.html b/benefits/eligibility/templates/eligibility/start.html index e6e24e1e6..2a34411e4 100644 --- a/benefits/eligibility/templates/eligibility/start.html +++ b/benefits/eligibility/templates/eligibility/start.html @@ -1,6 +1,5 @@ {% extends "core/base.html" %} {% load i18n %} -{% load core %} {% block classes %} {{ block.super | add:" eligibility-start" }} diff --git a/benefits/eligibility/templates/eligibility/start__login_gov.html b/benefits/eligibility/templates/eligibility/start__login_gov.html index b6f62f846..57a48691f 100644 --- a/benefits/eligibility/templates/eligibility/start__login_gov.html +++ b/benefits/eligibility/templates/eligibility/start__login_gov.html @@ -1,6 +1,5 @@ {% extends "eligibility/start.html" %} {% load i18n %} -{% load core %} {% block page_title %} {% translate "eligibility.pages.start.login_gov.title" %} |  @@ -13,23 +12,7 @@

    {% translate "eligibility.pages.start.login_gov.headline" %}

    {% endblock headline %} {% block media-list %} - {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} - {% translate "eligibility.pages.start.login_gov.start_item.heading" as heading %} - {% translate "eligibility.pages.start.login_gov.start_item.details" as details %} - {# djlint: off #} - {% media_item icon="idcardcheck" icon_alt=icon_alt heading=heading %} -
    -

    {{ details }}

    -
    -
      -
    • {% translate "eligibility.pages.start.login_gov.required_items[0]" %}
    • -
    • {% translate "eligibility.pages.start.login_gov.required_items[1]" %}
    • -
    • {% translate "eligibility.pages.start.login_gov.required_items[2]" %}
    • -
    -
    -
    - {% endmedia_item %} - {# djlint: on #} + {% include "eligibility/includes/media_item__start__idcardcheck__login_gov.html" %} {% include "eligibility/includes/media_item__start__bankcardcheck.html" %} {% endblock media-list %} diff --git a/benefits/eligibility/templates/eligibility/start__mst_courtesy_card.html b/benefits/eligibility/templates/eligibility/start__mst_courtesy_card.html index 3692dc66a..261b5b2c0 100644 --- a/benefits/eligibility/templates/eligibility/start__mst_courtesy_card.html +++ b/benefits/eligibility/templates/eligibility/start__mst_courtesy_card.html @@ -1,6 +1,5 @@ {% extends "eligibility/start.html" %} {% load i18n %} -{% load core %} {% block page_title %} {% translate "eligibility.pages.start.mst_cc.title" %} |  @@ -13,16 +12,7 @@

    {% translate "eligibility.pages.start.mst_cc.headline" %}

    {% endblock headline %} {% block media-list %} - {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} - {% translate "eligibility.pages.start.mst_cc.start_item.heading" as heading %} - {% translate "eligibility.pages.start.mst_cc.start_item.details" as details %} - {# djlint: off #} - {% media_item icon="idcardcheck" icon_alt=icon_alt heading=heading %} -
    -

    {{ details }}

    -
    - {% endmedia_item %} - {# djlint: on #} + {% include "eligibility/includes/media_item__start__idcardcheck__mst_courtesy_card.html" %} {% include "eligibility/includes/media_item__start__bankcardcheck.html" %} {% endblock media-list %} diff --git a/benefits/eligibility/templates/eligibility/start__veteran.html b/benefits/eligibility/templates/eligibility/start__veteran.html index 110ff86f8..8d5efcf9a 100644 --- a/benefits/eligibility/templates/eligibility/start__veteran.html +++ b/benefits/eligibility/templates/eligibility/start__veteran.html @@ -1,6 +1,5 @@ {% extends "eligibility/start.html" %} {% load i18n %} -{% load core %} {% block page_title %} {% translate "eligibility.pages.start.veteran.title" %} |  @@ -13,25 +12,7 @@

    {% translate "eligibility.pages.start.veteran.headline" %}

    {% endblock headline %} {% block media-list %} - {% translate "core.icons.idcardcheck" context "image alt text" as icon_alt %} - {% translate "eligibility.pages.start.veteran.start_item.heading" as heading %} - {% translate "eligibility.pages.start.veteran.start_item.details" as details %} - {# djlint: off #} - {% media_item icon="idcardcheck" icon_alt=icon_alt heading=heading %} -
    -

    {{ details }}

    -
    -
      -
    • {% translate "eligibility.pages.start.veteran.required_items[0]" %}
    • -
    • {% translate "eligibility.pages.start.veteran.required_items[1]" %}
    • -
    • {% translate "eligibility.pages.start.veteran.required_items[2]" %}
    • -
    • {% translate "eligibility.pages.start.veteran.required_items[3]" %}
    • -
    -

    {% translate "eligibility.pages.start.veteran.start_item.secondary_details" %}

    -
    -
    - {% endmedia_item %} - {# djlint: on #} + {% include "eligibility/includes/media_item__start__idcardcheck__veteran.html" %} {% include "eligibility/includes/media_item__start__bankcardcheck.html" %} {% endblock media-list %}