From 23a3e714645f473e055669d89fd8a5dbf0ec44cb Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Sat, 30 Jun 2018 12:51:52 +0100 Subject: [PATCH] Yet more progress! --- env/dev/resources/config.edn | 4 +- project.clj | 1 + resources/public/css/yyy-common.css | 6 + resources/public/img/ProjectHopeLogo.png | Bin 0 -> 46799 bytes resources/sql/queries.auto.sql | 18 +- resources/sql/youyesyet.postgres.sql | 6 +- resources/templates/about.html | 13 + resources/templates/app.html | 6 +- .../templates/auto/application-index.html | 2 +- .../auto/form-addresses-Address.html | 2 +- .../auto/form-authorities-Authority.html | 2 +- .../auto/form-canvassers-Canvasser.html | 2 +- .../auto/form-districts-District.html | 2 +- .../auto/form-dwellings-Dwelling.html | 2 +- .../templates/auto/form-electors-Elector.html | 2 +- .../form-followupactions-Followupaction.html | 4 +- .../form-followupmethods-Followupmethod.html | 2 +- ...form-followuprequests-Followuprequest.html | 2 +- .../templates/auto/form-genders-Gender.html | 2 +- .../auto/form-intentions-Intention.html | 2 +- .../templates/auto/form-issues-Issue.html | 2 +- .../templates/auto/form-options-Option.html | 2 +- resources/templates/auto/form-roles-Role.html | 4 +- resources/templates/auto/form-teams-Team.html | 6 +- .../templates/auto/form-visits-Visit.html | 4 +- .../auto/list-addresses-Addresses.html | 2 +- .../auto/list-authorities-Authorities.html | 2 +- .../auto/list-canvassers-Canvassers.html | 2 +- .../auto/list-districts-Districts.html | 2 +- .../auto/list-dwellings-Dwellings.html | 2 +- .../auto/list-electors-Electors.html | 2 +- .../list-followupactions-Followupactions.html | 2 +- .../list-followupmethods-Followupmethods.html | 2 +- ...ist-followuprequests-Followuprequests.html | 2 +- .../templates/auto/list-genders-Genders.html | 2 +- .../auto/list-intentions-Intentions.html | 2 +- .../templates/auto/list-issues-Issues.html | 2 +- .../templates/auto/list-options-Options.html | 2 +- .../templates/auto/list-roles-Roles.html | 2 +- .../templates/auto/list-teams-Teams.html | 2 +- .../templates/auto/list-visits-Visits.html | 2 +- resources/templates/base-authenticated.html | 79 - resources/templates/base-unauthenticated.html | 59 - resources/templates/base.html | 23 +- resources/templates/call-me-accepted.html | 34 +- resources/templates/call-me.html | 10 +- resources/templates/canvasser.html | 2 +- resources/templates/home.html | 12 +- resources/templates/login.html | 12 +- resources/templates/notyet.html | 2 +- resources/templates/roles.html | 2 +- resources/templates/supporter.html | 7 +- src/clj/youyesyet/layout.clj | 25 + src/clj/youyesyet/routes/auto.clj | 3 +- src/clj/youyesyet/routes/auto_json.clj | 1591 ++++++++--------- src/clj/youyesyet/routes/home.clj | 9 +- youyesyet.adl.xml | 34 +- youyesyet.canonical.adl.xml | 96 +- 58 files changed, 989 insertions(+), 1141 deletions(-) create mode 100644 resources/public/img/ProjectHopeLogo.png create mode 100644 resources/templates/about.html delete mode 100644 resources/templates/base-authenticated.html delete mode 100644 resources/templates/base-unauthenticated.html diff --git a/env/dev/resources/config.edn b/env/dev/resources/config.edn index 6f14c22..c261b18 100644 --- a/env/dev/resources/config.edn +++ b/env/dev/resources/config.edn @@ -1,4 +1,6 @@ {:dev true :port 3000 ;; when :nrepl-port is set the application starts the nREPL server on load - :nrepl-port 7000} + :nrepl-port 7000 + :site-title "Project Hope" + :site-logo "img/ProjectHopeLogo.png"} diff --git a/project.clj b/project.clj index 404b692..5e77ef4 100644 --- a/project.clj +++ b/project.clj @@ -24,6 +24,7 @@ [mount "0.1.11"] [org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.9.229" :scope "provided"] + [org.clojure/core.memoize "0.7.1"] [org.clojure/tools.cli "0.3.5"] [org.clojure/tools.logging "0.3.1"] [org.postgresql/postgresql "9.4.1212"] diff --git a/resources/public/css/yyy-common.css b/resources/public/css/yyy-common.css index 074e9bd..75275ff 100644 --- a/resources/public/css/yyy-common.css +++ b/resources/public/css/yyy-common.css @@ -78,6 +78,7 @@ header { margin-top: 0; width:100%; max-width: 100%; + min-height: 96px; /* yes, we don't approve of pixel values; but this is to ensure the logo fits. */ background-color: rgb(7, 57, 106); color: white; } @@ -238,6 +239,11 @@ th { border-bottom: thin solid white; } +#site-logo { + padding: 0.5em; + float: left; +} + /* but magically appears on mouseover */ #cookies:hover #more-about-cookies { display: block; diff --git a/resources/public/img/ProjectHopeLogo.png b/resources/public/img/ProjectHopeLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..2c2b00f94fbe2811cf3ce9e427c7dbfa98afa5e0 GIT binary patch literal 46799 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 literal 0 HcmV?d00001 diff --git a/resources/sql/queries.auto.sql b/resources/sql/queries.auto.sql index d9a0e45..e08aa23 100644 --- a/resources/sql/queries.auto.sql +++ b/resources/sql/queries.auto.sql @@ -1,7 +1,7 @@ ------------------------------------------------------------------------ -- File queries.sql -- --- autogenerated by adl.to-hugsql-queries at 2018-06-29T22:21:53.869Z +-- autogenerated by adl.to-hugsql-queries at 2018-06-30T11:35:59.388Z -- -- See [Application Description -- Language](https://github.com/simon-brooke/adl). @@ -282,6 +282,8 @@ SELECT * FROM canvassers WHERE canvassers.id = :id ORDER BY canvassers.username, canvassers.fullname, + canvassers.address_id, + canvassers.phone, canvassers.email, canvassers.id @@ -291,6 +293,8 @@ SELECT * FROM canvassers WHERE canvassers.username = :username ORDER BY canvassers.username, canvassers.fullname, + canvassers.address_id, + canvassers.phone, canvassers.email, canvassers.id @@ -420,6 +424,8 @@ SELECT DISTINCT * FROM lv_authorities SELECT DISTINCT * FROM lv_canvassers ORDER BY lv_canvassers.username, lv_canvassers.fullname, + lv_canvassers.address_id, + lv_canvassers.phone, lv_canvassers.email, lv_canvassers.id --~ (if (:offset params) "OFFSET :offset ") @@ -433,6 +439,8 @@ WHERE lv_canvassers.id = canvassers.id AND canvassers.address_id = :id ORDER BY lv_canvassers.username, lv_canvassers.fullname, + lv_canvassers.address_id, + lv_canvassers.phone, lv_canvassers.email, lv_canvassers.id @@ -444,6 +452,8 @@ WHERE lv_canvassers.id = canvassers.id AND canvassers.authority_id = :id ORDER BY lv_canvassers.username, lv_canvassers.fullname, + lv_canvassers.address_id, + lv_canvassers.phone, lv_canvassers.email, lv_canvassers.id @@ -455,6 +465,8 @@ WHERE lv_canvassers.id = canvassers.id AND canvassers.elector_id = :id ORDER BY lv_canvassers.username, lv_canvassers.fullname, + lv_canvassers.address_id, + lv_canvassers.phone, lv_canvassers.email, lv_canvassers.id @@ -466,6 +478,8 @@ WHERE canvassers.id = ln_canvassers_roles.canvasser_id AND ln_canvassers_roles.role_id = :id ORDER BY canvassers.username, canvassers.fullname, + canvassers.address_id, + canvassers.phone, canvassers.email, canvassers.id @@ -783,6 +797,8 @@ WHERE false --~ (if (:id params) "OR id = :id") ORDER BY lv_canvassers.username, lv_canvassers.fullname, + lv_canvassers.address_id, + lv_canvassers.phone, lv_canvassers.email, lv_canvassers.id --~ (if (:offset params) "OFFSET :offset ") diff --git a/resources/sql/youyesyet.postgres.sql b/resources/sql/youyesyet.postgres.sql index 42b0f83..e787f6f 100644 --- a/resources/sql/youyesyet.postgres.sql +++ b/resources/sql/youyesyet.postgres.sql @@ -5,7 +5,7 @@ -- -- auto-generated by [Application Description Language framework] -- --- (https://github.com/simon-brooke/adl) at 20180629T163619.639Z +-- (https://github.com/simon-brooke/adl) at 20180630T113600.308Z -- -- -- A web-app intended to be used by canvassers campaigning for a @@ -576,7 +576,7 @@ GRANT SELECT ON lv_electors TO admin, CREATE VIEW lv_followupactions AS SELECT electors.name ||', '|| electors.phone ||', '|| electors.email ||', '|| genders.id ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| visits.date ||', '|| issues.id AS request_id_expanded, followupactions.request_id, - canvassers.username ||', '|| canvassers.fullname ||', '|| canvassers.email AS actor_expanded, + canvassers.username ||', '|| canvassers.fullname ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| canvassers.phone ||', '|| canvassers.email AS actor_expanded, followupactions.actor, followupactions.date, followupactions.notes, @@ -741,7 +741,7 @@ GRANT SELECT ON lv_teams TO admin, CREATE VIEW lv_visits AS SELECT addresses.address ||', '|| addresses.postcode AS address_id_expanded, visits.address_id, - canvassers.username ||', '|| canvassers.fullname ||', '|| canvassers.email AS canvasser_id_expanded, + canvassers.username ||', '|| canvassers.fullname ||', '|| addresses.address ||', '|| addresses.postcode ||', '|| canvassers.phone ||', '|| canvassers.email AS canvasser_id_expanded, visits.canvasser_id, visits.date, visits.id diff --git a/resources/templates/about.html b/resources/templates/about.html new file mode 100644 index 0000000..97ccd2d --- /dev/null +++ b/resources/templates/about.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} +{% block big-links %} +{% endblock %} +{% block content %} +

+ Alpha test code +

+

+ Although addresses in the database mostly are real, all personal data in the database + is randomly generated and does not represent real people. +

+{% endblock %} + diff --git a/resources/templates/app.html b/resources/templates/app.html index 024aa39..6b7bccb 100644 --- a/resources/templates/app.html +++ b/resources/templates/app.html @@ -1,4 +1,4 @@ -{% extends "base-authenticated.html" %} +{% extends "base.html" %} {% block whole-page %}
{% block foot %} +
@@ -66,11 +72,18 @@
{% endblock %} {% endblock %} + {% block extra-tail %} + + + {% endblock %} diff --git a/resources/templates/call-me-accepted.html b/resources/templates/call-me-accepted.html index a720998..9bcc836 100644 --- a/resources/templates/call-me-accepted.html +++ b/resources/templates/call-me-accepted.html @@ -1,41 +1,15 @@ -{% extends "base-unauthenticated.html" %} +{% extends "base.html" %} {% block big-links %} - {% endblock %} {% block content %} +

+ We'll be in touch! +

Thank you, {{name}}. Someone will call you shortly on {{phone}} to talk to you about {{concern}}.

-
-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-
{% endblock %} diff --git a/resources/templates/call-me.html b/resources/templates/call-me.html index 299e97d..bb2414e 100644 --- a/resources/templates/call-me.html +++ b/resources/templates/call-me.html @@ -1,14 +1,10 @@ -{% extends "base-unauthenticated.html" %} -{% block big-links %} - -{% endblock %} +{% extends "base.html" %} {% block content %}

Use this form to request someone to phone you to discuss your concerns about independence.

+ {% csrf-field %}

@@ -25,7 +21,7 @@

diff --git a/resources/templates/canvasser.html b/resources/templates/canvasser.html index b223313..ceb6c6c 100644 --- a/resources/templates/canvasser.html +++ b/resources/templates/canvasser.html @@ -1,4 +1,4 @@ -{% extends "base-authenticated.html" %} +{% extends "base.html" %} {% block title %} {% endblock %} {% block content %} diff --git a/resources/templates/home.html b/resources/templates/home.html index ea4c068..59a851f 100644 --- a/resources/templates/home.html +++ b/resources/templates/home.html @@ -1,4 +1,4 @@ -{% extends "base-unauthenticated.html" %} +{% extends "base.html" %} {% block big-links %} {% endblock %} +{% block content %} +

+ Alpha test code +

+

+ Although addresses in the database mostly are real, all personal data in the database + is randomly generated and does not represent real people. +

+{% endblock %} + diff --git a/resources/templates/login.html b/resources/templates/login.html index fab8b01..0d305b6 100644 --- a/resources/templates/login.html +++ b/resources/templates/login.html @@ -1,9 +1,6 @@ -{% extends "base-unauthenticated.html" %} -{% block content %} - - {% for authority in authorities %} +{% extends "base.html" %} +{% block big-links %} + {% for authority in authorities %} {% endfor %} +{% endblock %} + +{% block content %} {% csrf-field %}

diff --git a/resources/templates/notyet.html b/resources/templates/notyet.html index 47b9fec..9574c55 100644 --- a/resources/templates/notyet.html +++ b/resources/templates/notyet.html @@ -1,4 +1,4 @@ -{% extends "base-unauthenticated.html" %} +{% extends "base.html" %} {% block big-links %}

@@ -23,13 +23,13 @@

{% endblock %} -{% block extra-script %} +{% block extra-tail %} + - {% script "/js/app.js" %} {% endblock %} diff --git a/resources/templates/auto/application-index.html b/resources/templates/auto/application-index.html index db28ab2..c379eea 100644 --- a/resources/templates/auto/application-index.html +++ b/resources/templates/auto/application-index.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-addresses-Address.html b/resources/templates/auto/form-addresses-Address.html index 083db4f..ee7c8ba 100644 --- a/resources/templates/auto/form-addresses-Address.html +++ b/resources/templates/auto/form-addresses-Address.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-authorities-Authority.html b/resources/templates/auto/form-authorities-Authority.html index 19283c2..fa47abe 100644 --- a/resources/templates/auto/form-authorities-Authority.html +++ b/resources/templates/auto/form-authorities-Authority.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-canvassers-Canvasser.html b/resources/templates/auto/form-canvassers-Canvasser.html index ef82c02..ba56e4a 100644 --- a/resources/templates/auto/form-canvassers-Canvasser.html +++ b/resources/templates/auto/form-canvassers-Canvasser.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-districts-District.html b/resources/templates/auto/form-districts-District.html index eb692a7..851e38f 100644 --- a/resources/templates/auto/form-districts-District.html +++ b/resources/templates/auto/form-districts-District.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-dwellings-Dwelling.html b/resources/templates/auto/form-dwellings-Dwelling.html index 850d68c..4a164ab 100644 --- a/resources/templates/auto/form-dwellings-Dwelling.html +++ b/resources/templates/auto/form-dwellings-Dwelling.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-electors-Elector.html b/resources/templates/auto/form-electors-Elector.html index 1b6251a..d2ceff2 100644 --- a/resources/templates/auto/form-electors-Elector.html +++ b/resources/templates/auto/form-electors-Elector.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-followupactions-Followupaction.html b/resources/templates/auto/form-followupactions-Followupaction.html index ef4bd47..9486e73 100644 --- a/resources/templates/auto/form-followupactions-Followupaction.html +++ b/resources/templates/auto/form-followupactions-Followupaction.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} @@ -73,7 +73,7 @@ actor
{% else %} diff --git a/resources/templates/auto/form-followupmethods-Followupmethod.html b/resources/templates/auto/form-followupmethods-Followupmethod.html index 5a5171c..0ebe89e 100644 --- a/resources/templates/auto/form-followupmethods-Followupmethod.html +++ b/resources/templates/auto/form-followupmethods-Followupmethod.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-followuprequests-Followuprequest.html b/resources/templates/auto/form-followuprequests-Followuprequest.html index ee12d56..810e20a 100644 --- a/resources/templates/auto/form-followuprequests-Followuprequest.html +++ b/resources/templates/auto/form-followuprequests-Followuprequest.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-genders-Gender.html b/resources/templates/auto/form-genders-Gender.html index 238a638..33c1930 100644 --- a/resources/templates/auto/form-genders-Gender.html +++ b/resources/templates/auto/form-genders-Gender.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-intentions-Intention.html b/resources/templates/auto/form-intentions-Intention.html index be4870d..b2287ec 100644 --- a/resources/templates/auto/form-intentions-Intention.html +++ b/resources/templates/auto/form-intentions-Intention.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-issues-Issue.html b/resources/templates/auto/form-issues-Issue.html index 085cccc..cd89da2 100644 --- a/resources/templates/auto/form-issues-Issue.html +++ b/resources/templates/auto/form-issues-Issue.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-options-Option.html b/resources/templates/auto/form-options-Option.html index d52fcda..5e4524b 100644 --- a/resources/templates/auto/form-options-Option.html +++ b/resources/templates/auto/form-options-Option.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/form-roles-Role.html b/resources/templates/auto/form-roles-Role.html index 991549a..ed2f57a 100644 --- a/resources/templates/auto/form-roles-Role.html +++ b/resources/templates/auto/form-roles-Role.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} @@ -68,7 +68,7 @@ members
{% else %} diff --git a/resources/templates/auto/form-teams-Team.html b/resources/templates/auto/form-teams-Team.html index ef80fdf..6f4bc0d 100644 --- a/resources/templates/auto/form-teams-Team.html +++ b/resources/templates/auto/form-teams-Team.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} @@ -109,7 +109,7 @@ members
{% else %} @@ -132,7 +132,7 @@ organisers
{% else %} diff --git a/resources/templates/auto/form-visits-Visit.html b/resources/templates/auto/form-visits-Visit.html index 1a504dd..9482227 100644 --- a/resources/templates/auto/form-visits-Visit.html +++ b/resources/templates/auto/form-visits-Visit.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} @@ -73,7 +73,7 @@ canvasser_id
{% else %} diff --git a/resources/templates/auto/list-addresses-Addresses.html b/resources/templates/auto/list-addresses-Addresses.html index 8fed2b1..aa6e297 100644 --- a/resources/templates/auto/list-addresses-Addresses.html +++ b/resources/templates/auto/list-addresses-Addresses.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-authorities-Authorities.html b/resources/templates/auto/list-authorities-Authorities.html index 98e5db9..d479410 100644 --- a/resources/templates/auto/list-authorities-Authorities.html +++ b/resources/templates/auto/list-authorities-Authorities.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-canvassers-Canvassers.html b/resources/templates/auto/list-canvassers-Canvassers.html index 06f07a2..2e2daf8 100644 --- a/resources/templates/auto/list-canvassers-Canvassers.html +++ b/resources/templates/auto/list-canvassers-Canvassers.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-districts-Districts.html b/resources/templates/auto/list-districts-Districts.html index 10aa521..5aa04b4 100644 --- a/resources/templates/auto/list-districts-Districts.html +++ b/resources/templates/auto/list-districts-Districts.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-dwellings-Dwellings.html b/resources/templates/auto/list-dwellings-Dwellings.html index ff846fd..d4a5468 100644 --- a/resources/templates/auto/list-dwellings-Dwellings.html +++ b/resources/templates/auto/list-dwellings-Dwellings.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-electors-Electors.html b/resources/templates/auto/list-electors-Electors.html index e55df8e..78da6fe 100644 --- a/resources/templates/auto/list-electors-Electors.html +++ b/resources/templates/auto/list-electors-Electors.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-followupactions-Followupactions.html b/resources/templates/auto/list-followupactions-Followupactions.html index 25138cd..c0c7c29 100644 --- a/resources/templates/auto/list-followupactions-Followupactions.html +++ b/resources/templates/auto/list-followupactions-Followupactions.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-followupmethods-Followupmethods.html b/resources/templates/auto/list-followupmethods-Followupmethods.html index 51cab99..fba6c0f 100644 --- a/resources/templates/auto/list-followupmethods-Followupmethods.html +++ b/resources/templates/auto/list-followupmethods-Followupmethods.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-followuprequests-Followuprequests.html b/resources/templates/auto/list-followuprequests-Followuprequests.html index 4df3180..1a92655 100644 --- a/resources/templates/auto/list-followuprequests-Followuprequests.html +++ b/resources/templates/auto/list-followuprequests-Followuprequests.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-genders-Genders.html b/resources/templates/auto/list-genders-Genders.html index e579f6a..d421968 100644 --- a/resources/templates/auto/list-genders-Genders.html +++ b/resources/templates/auto/list-genders-Genders.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-intentions-Intentions.html b/resources/templates/auto/list-intentions-Intentions.html index 3e11a92..de75da8 100644 --- a/resources/templates/auto/list-intentions-Intentions.html +++ b/resources/templates/auto/list-intentions-Intentions.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-issues-Issues.html b/resources/templates/auto/list-issues-Issues.html index 50875c0..af0eb2c 100644 --- a/resources/templates/auto/list-issues-Issues.html +++ b/resources/templates/auto/list-issues-Issues.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-options-Options.html b/resources/templates/auto/list-options-Options.html index b7bce93..3479834 100644 --- a/resources/templates/auto/list-options-Options.html +++ b/resources/templates/auto/list-options-Options.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-roles-Roles.html b/resources/templates/auto/list-roles-Roles.html index 09fe18d..8a2a73f 100644 --- a/resources/templates/auto/list-roles-Roles.html +++ b/resources/templates/auto/list-roles-Roles.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-teams-Teams.html b/resources/templates/auto/list-teams-Teams.html index 582741b..bbc027c 100644 --- a/resources/templates/auto/list-teams-Teams.html +++ b/resources/templates/auto/list-teams-Teams.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/auto/list-visits-Visits.html b/resources/templates/auto/list-visits-Visits.html index ed998ee..bdcfddb 100644 --- a/resources/templates/auto/list-visits-Visits.html +++ b/resources/templates/auto/list-visits-Visits.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} diff --git a/resources/templates/base-authenticated.html b/resources/templates/base-authenticated.html deleted file mode 100644 index cc067b0..0000000 --- a/resources/templates/base-authenticated.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - {{title}} - - - {% block whole-page %} - {% block top %} -
- - -

- {{title}} -

-
- {% endblock %} -
- - -
- {% block content %} - {% endblock %} -
-
- {% block foot %} - - {% endblock %} - {% endblock %} - - {% block extra-script %} - {% endblock %} - - - - - - diff --git a/resources/templates/base-unauthenticated.html b/resources/templates/base-unauthenticated.html deleted file mode 100644 index cfb278f..0000000 --- a/resources/templates/base-unauthenticated.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - {% block title %}{% endblock %}{{title}} - - -
- - -

- {{title}} -

-
- -
- -
- {% block content %} - {% endblock %} -
-
- - - - diff --git a/resources/templates/base.html b/resources/templates/base.html index e9add78..227b668 100644 --- a/resources/templates/base.html +++ b/resources/templates/base.html @@ -7,10 +7,15 @@ - {{title}} + {{site-title}}: {{title}} + {% block extra-head %} + + + {% endblock %} {% block whole-page %} + {% block top %}
- -

- {{title}} -

+ +

{{title}}

{% endblock %}
@@ -39,15 +42,18 @@
{% block content %} + {% endblock %}