From 4e296537c4ff0046397a210503620b4c47f5e923 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Fri, 29 Jun 2018 17:14:55 +0100 Subject: [PATCH] Progress on #2, #5; oauth isn't working but not far off Using the Noir session doesn't seem to be the right thing to do. I should be using the Ring session, but I'm having a hard time getting my head round it. @yogthos is too bloody clever! --- env/dev/clj/youyesyet/dev_middleware.clj | 2 +- resources/public/img/authorities/GitHub.png | Bin 0 -> 13424 bytes resources/public/img/authorities/GitHub.xcf | Bin 0 -> 79906 bytes resources/public/img/authorities/Twitter.jpg | Bin 0 -> 26692 bytes resources/public/img/authorities/Twitter.png | Bin 0 -> 6757 bytes resources/public/img/authorities/Twitter.xcf | Bin 0 -> 21415 bytes resources/sql/queries.auto.sql | 42 ++++++-- resources/sql/youyesyet.postgres.sql | 35 ++++-- .../templates/auto/application-index.html | 11 +- .../auto/form-addresses-Address.html | 2 +- .../auto/form-authorities-Authority.html | 92 +++++++++++++++- .../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 | 2 +- .../form-followupmethods-Followupmethod.html | 2 +- ...form-followuprequests-Followuprequest.html | 2 +- .../templates/auto/form-genders-Gender.html | 2 +- .../auto/form-intentions-Intention.html | 20 +++- .../templates/auto/form-issues-Issue.html | 2 +- .../templates/auto/form-options-Option.html | 2 +- resources/templates/auto/form-roles-Role.html | 2 +- resources/templates/auto/form-teams-Team.html | 30 +++--- .../templates/auto/form-visits-Visit.html | 2 +- .../auto/list-addresses-Addresses.html | 2 +- .../auto/list-authorities-Authorities.html | 29 ++++- .../auto/list-canvassers-Canvassers.html | 2 +- .../auto/list-districts-Districts.html | 2 +- .../auto/list-dwellings-Dwellings.html | 6 +- .../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 | 11 +- .../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 | 10 +- resources/templates/base.html | 12 +-- resources/templates/login.html | 24 ++++- src/clj/youyesyet/handler.clj | 3 +- src/clj/youyesyet/oauth.clj | 100 +++++++++++++++--- src/clj/youyesyet/routes/auto.clj | 2 +- src/clj/youyesyet/routes/auto_json.clj | 14 ++- src/clj/youyesyet/routes/home.clj | 7 +- src/clj/youyesyet/routes/oauth.clj | 6 +- youyesyet.adl.xml | 21 +++- youyesyet.canonical.adl.xml | 50 ++++++++- 52 files changed, 465 insertions(+), 114 deletions(-) create mode 100644 resources/public/img/authorities/GitHub.png create mode 100644 resources/public/img/authorities/GitHub.xcf create mode 100644 resources/public/img/authorities/Twitter.jpg create mode 100644 resources/public/img/authorities/Twitter.png create mode 100644 resources/public/img/authorities/Twitter.xcf diff --git a/env/dev/clj/youyesyet/dev_middleware.clj b/env/dev/clj/youyesyet/dev_middleware.clj index e3881c8..23fd9db 100644 --- a/env/dev/clj/youyesyet/dev_middleware.clj +++ b/env/dev/clj/youyesyet/dev_middleware.clj @@ -1,6 +1,6 @@ (ns youyesyet.dev-middleware (:require -;; [ring.middleware.reload :refer [wrap-reload]] +;; [ring.middleware.reload :refer [wrap-reload]] ;; this fails with a self referential dependency, which I haven't tracked down. [selmer.middleware :refer [wrap-error-page]] [prone.middleware :refer [wrap-exceptions]] )) diff --git a/resources/public/img/authorities/GitHub.png b/resources/public/img/authorities/GitHub.png new file mode 100644 index 0000000000000000000000000000000000000000..f69f65769e3ab6dd54a1b8fdccf09d3f7b5c8238 GIT binary patch literal 13424 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

TyGN!7A8z7QN(` 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 K(i6V&#Qy`Rj>?+= literal 0 HcmV?d00001 diff --git a/resources/public/img/authorities/GitHub.xcf b/resources/public/img/authorities/GitHub.xcf new file mode 100644 index 0000000000000000000000000000000000000000..936861d48da6bc5f77b715d7bad7a1ce433680f3 GIT binary patch literal 79906 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 T#`t~i{;7gq(9gGc{^8eMw<76~zn* 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 literal 0 HcmV?d00001 diff --git a/resources/public/img/authorities/Twitter.xcf b/resources/public/img/authorities/Twitter.xcf new file mode 100644 index 0000000000000000000000000000000000000000..cad1df447f9b0551716c3f51270f6bf281bfdead GIT binary patch literal 21415 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 KG4c3fO!B|tjfLF+ literal 0 HcmV?d00001 diff --git a/resources/sql/queries.auto.sql b/resources/sql/queries.auto.sql index 0f482c4..3e66e95 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-29T10:10:58.177Z +-- autogenerated by adl.to-hugsql-queries at 2018-06-29T14:15:37.324Z -- -- See [Application Description -- Language](https://github.com/simon-brooke/adl). @@ -27,8 +27,18 @@ returning id -- :name create-authority! :! :n -- :doc creates a new authority record -INSERT INTO authorities (id) -VALUES (:id) +INSERT INTO authorities (request_token_uri, + access_token_uri, + authorize_uri, + consumer_key, + consumer_secret, + id) +VALUES (:request_token_uri, + :access_token_uri, + :authorize_uri, + :consumer_key, + :consumer_secret, + :id) returning id -- :name create-canvasser! :! :n @@ -121,10 +131,12 @@ returning id -- :doc creates a new intention record INSERT INTO intentions (visit_id, elector_id, - option_id) + option_id, + locality) VALUES (:visit_id, :elector_id, - :option_id) + :option_id, + :locality) returning Id -- :name create-issue! :! :n @@ -747,6 +759,11 @@ ORDER BY lv_addresses.address, -- :doc selects existing authority records having any string field matching the parameter of the same name by substring match SELECT * FROM lv_authorities WHERE false + --~ (if (:request-token-uri params) "OR request_token_uri LIKE '%:request-token-uri%'") + --~ (if (:access-token-uri params) "OR access_token_uri LIKE '%:access-token-uri%'") + --~ (if (:authorize-uri params) "OR authorize_uri LIKE '%:authorize-uri%'") + --~ (if (:consumer-key params) "OR consumer_key LIKE '%:consumer-key%'") + --~ (if (:consumer-secret params) "OR consumer_secret LIKE '%:consumer-secret%'") --~ (if (:id params) "OR id LIKE '%:id%'") --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -868,6 +885,7 @@ WHERE false --~ (if (:visit_id params) "OR visit_id = :visit_id") --~ (if (:elector_id params) "OR elector_id = :elector_id") --~ (if (:option_id params) "OR option_id = :option_id") + --~ (if (:locality params) "OR locality = :locality") --~ (if (:Id params) "OR Id = :Id") --~ (if (:offset params) "OFFSET :offset ") --~ (if (:limit params) "LIMIT :limit" "LIMIT 100") @@ -941,6 +959,17 @@ SET address = :address, locality = :locality WHERE addresses.id = :id +-- :name update-authority! :! :n +-- :doc updates an existing authority record +UPDATE authorities +SET request_token_uri = :request-token-uri, + access_token_uri = :access-token-uri, + authorize_uri = :authorize-uri, + consumer_key = :consumer-key, + consumer_secret = :consumer-secret, + id = :id +WHERE authorities.id = :id + -- :name update-canvasser! :! :n -- :doc updates an existing canvasser record UPDATE canvassers @@ -1001,7 +1030,8 @@ WHERE followuprequests.id = :id UPDATE intentions SET visit_id = :visit_id, elector_id = :elector_id, - option_id = :option_id + option_id = :option_id, + locality = :locality WHERE intentions.Id = :Id -- :name update-issue! :! :n diff --git a/resources/sql/youyesyet.postgres.sql b/resources/sql/youyesyet.postgres.sql index 1bc4b7d..2dbb0c6 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 20180629T101059.126Z +-- (https://github.com/simon-brooke/adl) at 20180629T141538.194Z -- -- -- A web-app intended to be used by canvassers campaigning for a @@ -99,7 +99,12 @@ GRANT DELETE ON addresses TO admin ; ------------------------------------------------------------------------ CREATE TABLE authorities ( - id VARCHAR(32) NOT NULL PRIMARY KEY + id VARCHAR(32) NOT NULL PRIMARY KEY, + request_token_uri VARCHAR(256) NOT NULL, + access_token_uri VARCHAR(256) NOT NULL, + authorize_uri VARCHAR(256) NOT NULL, + consumer_key VARCHAR(32) DEFAULT 'youyesyet' NOT NULL, + consumer_secret VARCHAR(256) NOT NULL ); GRANT SELECT ON authorities TO admin, analysts, @@ -167,8 +172,15 @@ GRANT DELETE ON districts TO admin ; ------------------------------------------------------------------------ -- primary table dwellings for entity dwellings -- --- All dwellings within addresses in the system; a dwelling is a house, --- flat or appartment in which electors live. +-- All dwellings within addresses in the system; a dwelling is a +-- house, flat or appartment in which electors live. Every address +-- should have +-- at least one dwelling; essentially, an address maps onto a +-- street door and +-- dwellings map onto what's behind that door. So a tenement or a +-- block of flats +-- would be one address with many dwellings. +-- ------------------------------------------------------------------------ CREATE TABLE dwellings ( @@ -298,14 +310,15 @@ GRANT DELETE ON genders TO admin ; ------------------------------------------------------------------------ -- primary table intentions for entity intentions -- --- Link table. +-- Intentions of electors to vote for options elicited in visits. ------------------------------------------------------------------------ CREATE TABLE intentions ( Id SERIAL NOT NULL PRIMARY KEY, visit_id INTEGER NOT NULL, - elector_id INTEGER NOT NULL, - option_id VARCHAR(32) NOT NULL + elector_id INTEGER, + option_id VARCHAR(32) NOT NULL, + locality INTEGER NOT NULL ); GRANT SELECT ON intentions TO admin, analysts, @@ -455,7 +468,12 @@ GRANT SELECT ON lv_addresses TO admin, -- cetera ------------------------------------------------------------------------ CREATE VIEW lv_authorities AS -SELECT authorities.id +SELECT authorities.request_token_uri, + authorities.access_token_uri, + authorities.authorize_uri, + authorities.consumer_key, + authorities.consumer_secret, + authorities.id FROM authorities ; GRANT SELECT ON lv_authorities TO admin, @@ -641,6 +659,7 @@ SELECT addresses.address ||', '|| addresses.postcode ||', '|| visits.date AS vis intentions.elector_id, options.id AS option_id_expanded, intentions.option_id, + intentions.locality, intentions.Id FROM visits, intentions, addresses, genders, electors, options WHERE intentions.visit_id = visits.id diff --git a/resources/templates/auto/application-index.html b/resources/templates/auto/application-index.html index 1edf694..517fd53 100644 --- a/resources/templates/auto/application-index.html +++ b/resources/templates/auto/application-index.html @@ -1,5 +1,5 @@ {% extends "base.html" %} - {% block head %} @@ -49,7 +49,12 @@ Dwelling

-All dwellings within addresses in the system; a dwelling is a house, flat or appartment in which electors live. +All dwellings within addresses in the system; a dwelling is a + house, flat or appartment in which electors live. Every address should have + at least one dwelling; essentially, an address maps onto a street door and + dwellings map onto what's behind that door. So a tenement or a block of flats + would be one address with many dwellings. +

@@ -99,7 +104,7 @@ Intention

-Link table. +Intentions of electors to vote for options elicited in visits.

diff --git a/resources/templates/auto/form-addresses-Address.html b/resources/templates/auto/form-addresses-Address.html index a6d8011..e3dc979 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 6b4756b..8e6a888 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 %} @@ -42,6 +42,96 @@ You are not permitted to view id of authorities {% endifmemberof %} {% endifmemberof %}

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} + +{{record.request-token-uri}} + +{% else %} + +You are not permitted to view request-token-uri of authorities + +{% endifmemberof %} +{% endifmemberof %} +

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} + +{{record.access-token-uri}} + +{% else %} + +You are not permitted to view access-token-uri of authorities + +{% endifmemberof %} +{% endifmemberof %} +

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} + +{{record.authorize-uri}} + +{% else %} + +You are not permitted to view authorize-uri of authorities + +{% endifmemberof %} +{% endifmemberof %} +

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} + +{{record.consumer-key}} + +{% else %} + +You are not permitted to view consumer-key of authorities + +{% endifmemberof %} +{% endifmemberof %} +

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} + +{{record.consumer-secret}} + +{% else %} + +You are not permitted to view consumer-secret of authorities + +{% endifmemberof %} +{% endifmemberof %} +

+

+ +{% ifmemberof admin %} + +{% else %} +{% ifmemberof canvassers analysts admin %} + +{{record.locality}} + +{% else %} + +You are not permitted to view locality of intentions + +{% endifmemberof %} +{% endifmemberof %} +

{% else %} -{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %} {{record.district_id}} @@ -87,10 +87,10 @@ You are not permitted to view district_id of teams -{% ifmemberof teamorganisers admin %} +{% ifmemberof teamorganisers admin teamorganisers admin %} {% else %} -{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %} {{record.latitude}} @@ -105,7 +105,7 @@ You are not permitted to view latitude of teams -{% ifmemberof teamorganisers admin %} +{% ifmemberof teamorganisers admin teamorganisers admin %}
{% else %} -{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %} {{record.members}} @@ -128,7 +128,7 @@ You are not permitted to view members of teams -{% ifmemberof teamorganisers admin %} +{% ifmemberof teamorganisers admin teamorganisers admin %}
{% else %} -{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %} {{record.organisers}} @@ -151,10 +151,10 @@ You are not permitted to view organisers of teams -{% ifmemberof teamorganisers admin %} +{% ifmemberof teamorganisers admin teamorganisers admin %} {% else %} -{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin %} +{% ifmemberof canvassers teamorganisers issueexperts analysts issueeditors admin canvassers teamorganisers issueexperts analysts issueeditors admin %} {{record.longitude}} diff --git a/resources/templates/auto/form-visits-Visit.html b/resources/templates/auto/form-visits-Visit.html index e07cca1..65e51ea 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 %} diff --git a/resources/templates/auto/list-addresses-Addresses.html b/resources/templates/auto/list-addresses-Addresses.html index 829be5b..96da5ee 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 d20fe9d..35d09f1 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 %} @@ -33,12 +33,30 @@ Add a new Authority id + +request-token-uri + + +access-token-uri + + +authorize-uri + + + + + + + + + + @@ -50,6 +68,15 @@ id {{ record.id }} +{{ record.request_token_uri }} + + +{{ record.access_token_uri }} + + +{{ record.authorize_uri }} + +
View diff --git a/resources/templates/auto/list-canvassers-Canvassers.html b/resources/templates/auto/list-canvassers-Canvassers.html index c9719e0..c37423a 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 982e2d4..1ae5e72 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 4d633ca..22a42e9 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 %} @@ -48,7 +48,7 @@ sub-address - + @@ -67,7 +67,7 @@ sub-address -{{ record.sub-address }} +{{ record.sub_address }} diff --git a/resources/templates/auto/list-electors-Electors.html b/resources/templates/auto/list-electors-Electors.html index 383fce7..103b700 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 26697ec..a4c3dca 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 74c7b37..457d6f5 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 55a4b48..c81c924 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 8ce6cc1..64da2fe 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 c90c0c9..8fc6118 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 %} @@ -39,6 +39,9 @@ elector_id option_id + +locality + @@ -51,6 +54,9 @@ option_id + + + @@ -74,6 +80,9 @@ option_id +{{ record.locality }} + + View diff --git a/resources/templates/auto/list-issues-Issues.html b/resources/templates/auto/list-issues-Issues.html index 622cbae..1c08c80 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 bb735be..fd49da7 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 76cdc21..af780fe 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 613cff7..089ef34 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 f37ba72..93fe01b 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 index 22af08a..4fd1834 100644 --- a/resources/templates/base-authenticated.html +++ b/resources/templates/base-authenticated.html @@ -16,12 +16,12 @@