ADL builds; application does not yet run.

This commit is contained in:
Simon Brooke 2019-12-27 12:22:43 +00:00
parent f3c0e728a4
commit 649082871b
4 changed files with 64 additions and 13 deletions

16
.gitignore vendored
View file

@ -12,3 +12,19 @@ pom.xml.asc
.lein-failures .lein-failures
.nrepl-port .nrepl-port
.cpcache/ .cpcache/
pastoralist.canonical.adl.xml
resources/sql/pastoralist.postgres.sql
resources/sql/queries.auto.sql
src/clj/pastoralist/cache.clj
src/clj/pastoralist/routes/auto.clj
src/clj/pastoralist/routes/auto_json.clj
resources/templates/auto/
log/

View file

@ -2,7 +2,8 @@
generated using Luminus version "3.54" generated using Luminus version "3.54"
FIXME A web-app intended to be used by pastoralists in managing
pastures, grazing, and animals.
## Prerequisites ## Prerequisites
@ -18,4 +19,4 @@ To start a web server for the application, run:
## License ## License
Copyright © 2019 FIXME Copyright © 2019 Simon Brooke (simon@journeyman.cc)

View file

@ -55,7 +55,7 @@ version="0.0.1">
<prompt prompt="Area in Ha" locale="en_GB.UTF-8"/> <prompt prompt="Area in Ha" locale="en_GB.UTF-8"/>
</property> </property>
<property name="holding" type="entity" entity="holding" required="true"/> <property name="holding" type="entity" entity="holding" required="true"/>
<property name="geometry" type="entity" entity="polygon" required="true"> <!-- property name="geometry" type="entity" entity="polygon" required="true">
<documentation> <documentation>
Polygon is a first-class datatype in PostGIS, but ADL does not yet Polygon is a first-class datatype in PostGIS, but ADL does not yet
support this. Solutions: support this. Solutions:
@ -67,7 +67,7 @@ version="0.0.1">
should not be edited; rather it should be marked inactive, and new should not be edited; rather it should be marked inactive, and new
pasture record(s) created. pasture record(s) created.
</documentation> </documentation>
</property> </property -->
<property name="subdivision-of" type="entity" entity="pasture"/> <property name="subdivision-of" type="entity" entity="pasture"/>
<property name="is-active" type="boolean" default="true"> <property name="is-active" type="boolean" default="true">
<documentation>Records are not normally deleted from this system because <documentation>Records are not normally deleted from this system because
@ -108,6 +108,7 @@ version="0.0.1">
<property name="animal-identifier" type="string" size="64" distinct="user" required="true"> <property name="animal-identifier" type="string" size="64" distinct="user" required="true">
<prompt prompt="Ear-tag Number" locale="en_GB.UTF-8"/> <prompt prompt="Ear-tag Number" locale="en_GB.UTF-8"/>
</property> </property>
<property name="name" type="string" size="64" distinct="user"/>
<property name="gender" type="entity" entity="gender" required="true"/> <property name="gender" type="entity" entity="gender" required="true"/>
<property name="species" type="entity" entity="species" required="true"/> <property name="species" type="entity" entity="species" required="true"/>
<property name="breed" type="entity" entity="breed"/> <property name="breed" type="entity" entity="breed"/>
@ -157,13 +158,46 @@ version="0.0.1">
<property name="notes" type="text"/> <property name="notes" type="text"/>
</entity> </entity>
<entity name="event-type" magnitude="3" volatility="5">
<key>
<property required="true" type="integer" name="id"
column="id" immutable="true" distinct="system">
<generator action="native"/>
</property>
</key>
<property name="summary" type="string" size="80"/>
<property name="description" type="text"/>
<property name="n-holdings" type="integer" default="1">
<documentation>
Number of holdings affected by this event type; if an animal movement on
or off, for example, it will be two, otherwise normally one.
</documentation>
<prompt prompt="No. of Holdings Affected" locale="en_GB.UTF-8"/>
</property>
<property name="n-pastures" type="integer" default="1">
<documentation>
Number of pastures affected by this event type; if an animal movement between
pastures, for example, it will be two, otherwise normally one.
</documentation>
<prompt prompt="No. of Pastures Affected" locale="en_GB.UTF-8"/>
</property>
<property name="n-animals" type="integer" default="1">
<documentation>
Number of animals affected by this event type. If a value greater than 10
is recorded, that will be treated as 'many'. TODO: not comfortable that
that is the right way to handle 'many'.
</documentation>
<prompt prompt="No. of Animals Affected" locale="en_GB.UTF-8"/>
</property>
</entity>
<entity name="user" magnitude="6" volatility="3"> <entity name="user" magnitude="6" volatility="3">
<key> <key>
<property required="true" type="string" name="username" <property required="true" type="string" name="username" size="32"
column="username" immutable="true" distinct="all"/> column="username" immutable="true" distinct="all"/>
</key> </key>
<property required="true" type="string" name="fullname" <property required="true" type="string" name="fullname"
column="fullname" size="64" distinct="user"> column="fullname" size="64" distinct="user">
<prompt prompt="fullname" locale="en_GB.UTF-8"/> <prompt prompt="fullname" locale="en_GB.UTF-8"/>
</property> </property>
<property name="avatar" type="image" size="256"> <property name="avatar" type="image" size="256">
@ -176,20 +210,20 @@ version="0.0.1">
<prompt prompt="Bio" locale="en_GB.UTF-8"/> <prompt prompt="Bio" locale="en_GB.UTF-8"/>
</property> </property>
<property type="string" name="phone" column="phone" size="16" <property type="string" name="phone" column="phone" size="16"
distinct="user"> distinct="user">
<documentation>Does a canvasser record need a phone field? There is a phone <documentation>Does a canvasser record need a phone field? There is a phone
field on the elector record. I suppose, for under-16 canvassers, there may field on the elector record. I suppose, for under-16 canvassers, there may
be no elector record.</documentation> be no elector record.</documentation>
<prompt prompt="phone" locale="en_GB.UTF-8"/> <prompt prompt="phone" locale="en_GB.UTF-8"/>
</property> </property>
<property type="string" name="email" column="email" size="128" <property type="string" name="email" column="email" size="128"
distinct="user"> distinct="user">
<prompt prompt="email" locale="en_GB.UTF-8"/> <prompt prompt="email" locale="en_GB.UTF-8"/>
</property> </property>
<property required="true" type="entity" name="authority_id" <!-- property required="true" type="entity" name="authority_id"
entity="authorities" farkey="id"> entity="authorities" farkey="id">
<prompt prompt="authority_id" locale="en_GB.UTF-8"/> <prompt prompt="authority_id" locale="en_GB.UTF-8"/>
</property> </property -->
<property type="boolean" name="authorised" column="authorised"> <property type="boolean" name="authorised" column="authorised">
<prompt prompt="authorised" locale="en_GB.UTF-8"/> <prompt prompt="authorised" locale="en_GB.UTF-8"/>
</property> </property>

View file

@ -3,7 +3,7 @@
:description "FIXME: write description" :description "FIXME: write description"
:url "http://example.com/FIXME" :url "http://example.com/FIXME"
:dependencies [[adl-support "0.1.6"] :dependencies [[adl-support "0.1.7-SNAPSHOT"]
[ch.qos.logback/logback-classic "1.2.3"] [ch.qos.logback/logback-classic "1.2.3"]
[cheshire "5.9.0"] [cheshire "5.9.0"]
[clj-oauth "1.5.5"] [clj-oauth "1.5.5"]