Fixed database saving issues.

This commit is contained in:
Simon Brooke 2018-09-16 16:54:26 +01:00
parent dc1195bcbe
commit 2d4f7a897d
4 changed files with 35 additions and 21 deletions

View file

@ -103,16 +103,20 @@
(let [last-visit (last-visit-by-current-user request) (let [last-visit (last-visit-by-current-user request)
params (massage-params request)] params (massage-params request)]
(log/debug "rest/current-visit-id: type of address_id is: " (type (:address_id params))) (log/debug "rest/current-visit-id: type of address_id is: " (type (:address_id params)))
(if (let
(= [result (if
(:address_id params) (=
(:address_id last-visit)) (:address_id params)
(:id last-visit) (:address_id last-visit))
(db/create-visit! (:id last-visit)
db/*db* (:id
{:address_id (:address_id params) (db/create-visit!
:canvasser_id (-> request :session :user :id) db/*db*
:date (jt/to-sql-timestamp (jt/local-date-time))})))) {:address_id (:address_id params)
:canvasser_id (-> request :session :user :id)
:date (jt/to-sql-timestamp (jt/local-date-time))})))]
(log/debug "rest/current-visit-id returning " result "; type is " (type result))
result)))
(defn create-intention-and-visit! (defn create-intention-and-visit!
@ -137,7 +141,7 @@
(db/create-intention! (db/create-intention!
db/*db* db/*db*
(assoc (assoc
params :visit_id (current-visit-id request))) (merge {:actions nil, :issue_detail nil} params) :visit_id (current-visit-id request)))
201) 201)
{:status 400 {:status 400
:body (json/write-str :body (json/write-str
@ -152,16 +156,21 @@
`method_id` and `method_detail`). Ye cannae reasonably create a request `method_id` and `method_detail`). Ye cannae reasonably create a request
without having recorded the visit, so let's not muck about." without having recorded the visit, so let's not muck about."
[request] [request]
(let [params (assoc (let [params (merge
{:actions nil, :issue_detail ""}
(assoc
(massage-params request) (massage-params request)
:visit_id (current-visit-id request))] :visit_id (current-visit-id request)))]
(log/debug "create-request-and-visit! params are " params)
(valid-user-or-forbid (valid-user-or-forbid
(with-params-or-error (with-params-or-error
(do-or-server-fail (do-or-server-fail
(db/create-followuprequest! db/*db* params) (db/create-followuprequest!
db/*db* params)
201) 201)
params params
#{:elector_id :visit_id :issue_id :method_id :method_detail}) #{:elector_id :visit_id :issue_id :method_id
:method_detail})
request))) request)))
@ -174,7 +183,7 @@
(valid-user-or-forbid (valid-user-or-forbid
(with-params-or-error (with-params-or-error
(do-or-server-fail (do-or-server-fail
(db/update-elector! db/*db* params) (db/update-elector! db/*db* (merge {:email nil, :phone nil, :gender nil} params))
201) 201)
params params
#{:id :signature}) #{:id :signature})

View file

@ -64,6 +64,7 @@
(def feedback-messages (def feedback-messages
{:fetch-locality "Fetching local data." {:fetch-locality "Fetching local data."
:send-request "Request has been queued." :send-request "Request has been queued."
:send-intention-and-visit "Voting intention has been sent"
}) })

View file

@ -110,5 +110,7 @@
(defn panel (defn panel
"A reagent class for the map object." "A reagent class for the map object."
[] []
(get-current-location)
(reagent/create-class {:reagent-render map-render (reagent/create-class {:reagent-render map-render
:component-did-mount map-did-mount})) :component-did-mount map-did-mount})
(.panTo @(subscribe [:view]) (.latLng js/L @(subscribe [:latitude]) @(subscribe [:longitude]))))

View file

@ -64,6 +64,7 @@ version="0.1.1">
generally.</documentation> generally.</documentation>
</group> </group>
<entity table="electors" name="electors" magnitude="6" <entity table="electors" name="electors" magnitude="6"
volatility="5"> volatility="5">
<documentation>All electors known to the system; electors are <documentation>All electors known to the system; electors are
@ -130,9 +131,8 @@ version="0.1.1">
<permission group="issueeditors" permission="read"/> <permission group="issueeditors" permission="read"/>
<permission group="admin" permission="all"/> <permission group="admin" permission="all"/>
</entity> </entity>
<!--
entity genders already has a key - not generating one
-->
<entity table="genders" name="genders" magnitude="1" <entity table="genders" name="genders" magnitude="1"
volatility="6"> volatility="6">
<documentation>All genders which may be assigned to <documentation>All genders which may be assigned to
@ -160,6 +160,7 @@ version="0.1.1">
<permission group="admin" permission="all"/> <permission group="admin" permission="all"/>
</entity> </entity>
<entity table="dwellings" name="dwellings" magnitude="6" <entity table="dwellings" name="dwellings" magnitude="6"
volatility="6"> volatility="6">
<documentation>All dwellings within addresses in the system; a <documentation>All dwellings within addresses in the system; a
@ -211,6 +212,7 @@ version="0.1.1">
<permission group="admin" permission="all"/> <permission group="admin" permission="all"/>
</entity> </entity>
<entity table="addresses" name="addresses" magnitude="6" <entity table="addresses" name="addresses" magnitude="6"
volatility="6"> volatility="6">
<documentation>Addresses of all buildings which contain <documentation>Addresses of all buildings which contain
@ -694,7 +696,7 @@ version="0.1.1">
column="issue_id" entity="issues" farkey="id" distinct="user"> column="issue_id" entity="issues" farkey="id" distinct="user">
<prompt prompt="issue_id" locale="en_GB.UTF-8"/> <prompt prompt="issue_id" locale="en_GB.UTF-8"/>
</property> </property>
<property type="string" name="issue_detail"> <property type="string" name="issue_detail" size="128">
<prompt prompt="Issue detail" locale="en_GB.UTF-8"/> <prompt prompt="Issue detail" locale="en_GB.UTF-8"/>
</property> </property>
<property required="true" type="entity" name="method_id" <property required="true" type="entity" name="method_id"