Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
citizen-science
symbai
Commits
fb4b99fd
Commit
fb4b99fd
authored
Apr 11, 2014
by
Dave Griffiths
Browse files
quick add and fixed entity pollution with lists
parent
fad42368
Changes
3
Show whitespace changes
Inline
Side-by-side
android/assets/dbsync.scm
View file @
fb4b99fd
...
@@ -105,6 +105,7 @@
...
@@ -105,6 +105,7 @@
(
entity-add-value-create!
key
type
value
)))
(
entity-add-value-create!
key
type
value
)))
(
msg
"done entity-set-value!"
)))
(
msg
"done entity-set-value!"
)))
(
define
(
date-time->string
dt
)
(
define
(
date-time->string
dt
)
(
string-append
(
string-append
(
number->string
(
list-ref
dt
0
))
"-"
(
number->string
(
list-ref
dt
0
))
"-"
...
@@ -120,23 +121,26 @@
...
@@ -120,23 +121,26 @@
(
table
(
get-current
'table
#f
))
(
table
(
get-current
'table
#f
))
(
type
(
get-current
'entity-type
#f
)))
(
type
(
get-current
'entity-type
#f
)))
;; standard bits
;; standard bits
(
entity-add-value-create!
"user"
"varchar"
(
get-current
'user-id
"none"
))
(
let
((
r
(
entity-create!
db
table
type
(
get-current
'entity-values
'
()))))
(
entity-add-value-create!
"time"
"varchar"
(
date-time->string
(
date-time
)))
(
entity-reset!
)
r
)))
(
entity-add-value-create!
"lat"
"real"
(
car
(
get-current
'location
'
(
0
0
))))
(
entity-add-value-create!
"lon"
"real"
(
cadr
(
get-current
'location
'
(
0
0
))))
(
entity-add-value-create!
"deleted"
"int"
0
)
(
define
(
entity-create!
db
table
entity-type
ktv-list
)
(
let
((
values
(
get-current
'entity-values
'
())))
(
let
((
values
(
cond
(
append
((
not
(
null?
values
))
(
list
(
ktv-create
"user"
"varchar"
(
get-current
'user-id
"none"
))
(
ktv-create
"time"
"varchar"
(
date-time->string
(
date-time
)))
(
ktv-create
"lat"
"real"
(
car
(
get-current
'location
'
(
0
0
))))
(
ktv-create
"lon"
"real"
(
cadr
(
get-current
'location
'
(
0
0
))))
(
ktv-create
"deleted"
"int"
0
))
ktv-list
)))
(
let
((
r
(
insert-entity/get-unique
(
let
((
r
(
insert-entity/get-unique
db
table
type
(
get-current
'user-id
"no id"
)
db
table
entity-
type
(
get-current
'user-id
"no id"
)
values
)))
values
)))
(
msg
"inserted a "
type
)
(
msg
"entity-create: "
entity-type
)
(
entity-reset!
)
r
))
r
)))
(
else
(
msg
"no values to add as entity!"
)
#f
)))
;; just to be on the safe side
(
entity-reset!
)))
(
define
(
entity-update-values!
)
(
define
(
entity-update-values!
)
(
let
((
db
(
get-current
'db
#f
))
(
let
((
db
(
get-current
'db
#f
))
...
@@ -603,8 +607,8 @@
...
@@ -603,8 +607,8 @@
(
define
(
do-gps
display-id
key-prepend
)
(
define
(
do-gps
display-id
key-prepend
)
(
let
((
loc
(
get-current
'location
'
(
0
0
))))
(
let
((
loc
(
get-current
'location
'
(
0
0
))))
(
entity-
add
-value
-create
!
(
string-append
key-prepend
"-lat"
)
"real"
(
car
loc
))
(
entity-
set
-value!
(
string-append
key-prepend
"-lat"
)
"real"
(
car
loc
))
(
entity-
add
-value
-create
!
(
string-append
key-prepend
"-lon"
)
"real"
(
cadr
loc
))
(
entity-
set
-value!
(
string-append
key-prepend
"-lon"
)
"real"
(
cadr
loc
))
(
list
(
list
(
update-widget
(
update-widget
'text-view
'text-view
...
@@ -641,9 +645,11 @@
...
@@ -641,9 +645,11 @@
(
mtext-lookup
'add-item-to-list
)
(
mtext-lookup
'add-item-to-list
)
40
(
layout
100
'wrap-content
1
'centre
5
)
40
(
layout
100
'wrap-content
1
'centre
5
)
(
lambda
()
(
lambda
()
(
entity-init!
db
table
entity-type
ktv-default
)
(
entity-create!
(
entity-add-value-create!
"parent"
"varchar"
(
parent-fn
))
db
table
entity-type
(
entity-record-values!
)
(
ktvlist-merge
ktv-default
(
list
(
ktv
"parent"
"varchar"
(
parent-fn
)))))
(
list
(
update-list-widget
db
table
entity-type
edit-activity
(
parent-fn
))))))
(
list
(
update-list-widget
db
table
entity-type
edit-activity
(
parent-fn
))))))
(
linear-layout
(
linear-layout
(
make-id
(
string-append
entity-type
"-list"
))
(
make-id
(
string-append
entity-type
"-list"
))
...
@@ -686,7 +692,7 @@
...
@@ -686,7 +692,7 @@
(
lambda
(
v
)
(
lambda
(
v
)
(
cond
(
cond
((
eqv?
v
1
)
((
eqv?
v
1
)
(
entity-
add
-value!
"deleted"
"int"
1
)
(
entity-
set
-value!
"deleted"
"int"
1
)
(
entity-update-values!
)
(
entity-update-values!
)
(
list
(
finish-activity
1
)))
(
list
(
finish-activity
1
)))
(
else
(
else
...
...
android/assets/eavdb.scm
View file @
fb4b99fd
...
@@ -66,6 +66,21 @@
...
@@ -66,6 +66,21 @@
(
msg
"unsupported ktv type in ktv-eq?: "
(
ktv-type
a
))
(
msg
"unsupported ktv type in ktv-eq?: "
(
ktv-type
a
))
#f
))))
#f
))))
;; replace or insert a ktv
(
define
(
ktvlist-replace
ktv
ktvlist
)
(
cond
((
null?
ktvlist
)
(
list
ktv
))
((
equal?
(
ktv-key
(
car
ktvlist
))
(
ktv-key
ktv
))
(
cons
ktv
(
cdr
ktvlist
)))
(
else
(
cons
(
car
ktvlist
)
(
ktvlist-replace
ktv
(
cdr
ktvlist
))))))
(
define
(
ktvlist-merge
a
b
)
(
foldl
(
lambda
(
ktv
r
)
(
ktvlist-replace
ktv
r
))
a
b
))
;; stringify based on type (for url)
;; stringify based on type (for url)
(
define
(
stringify-value
ktv
)
(
define
(
stringify-value
ktv
)
(
cond
(
cond
...
...
android/assets/starwisp.scm
View file @
fb4b99fd
...
@@ -85,7 +85,9 @@
...
@@ -85,7 +85,9 @@
(
list
'delete-are-you-sure
(
list
"Are you sure you want to delete this?"
))
(
list
'delete-are-you-sure
(
list
"Are you sure you want to delete this?"
))
(
list
'save-are-you-sure
(
list
"Are you sure you want to save changes?"
))
(
list
'save-are-you-sure
(
list
"Are you sure you want to save changes?"
))
;; filter
;; individual filter
(
list
'quick-name
(
list
"New person name"
))
(
list
'quick-add
(
list
"Quick add"
))
(
list
'find-individual
(
list
"Find individual"
))
(
list
'find-individual
(
list
"Find individual"
))
(
list
'filter
(
list
"Filter"
))
(
list
'filter
(
list
"Filter"
))
(
list
'off
(
list
"Off"
"Off"
"Off"
))
(
list
'off
(
list
"Off"
"Off"
"Off"
))
...
@@ -249,6 +251,48 @@
...
@@ -249,6 +251,48 @@
(
list
'sex
(
list
"Sex"
))
(
list
'sex
(
list
"Sex"
))
))
))
(
define
individual-ktvlist
(
list
(
ktv-create
"name"
"varchar"
(
mtext-lookup
'default-individual-name
))
(
ktv-create
"family"
"varchar"
(
mtext-lookup
'default-family-name
))
(
ktv-create
"photo-id"
"varchar"
(
mtext-lookup
'default-photo-id
))
(
ktv-create
"photo"
"file"
"none"
)
(
ktv-create
"tribe"
"varchar"
"none"
)
(
ktv-create
"subtribe"
"varchar"
"none"
)
(
ktv-create
"child"
"int"
0
)
(
ktv-create
"age"
"int"
0
)
(
ktv-create
"gender"
"varchar"
"Female"
)
(
ktv-create
"education"
"varchar"
"none"
)
(
ktv-create
"head-of-house"
"varchar"
"none"
)
(
ktv-create
"marital-status"
"varchar"
"none"
)
(
ktv-create
"times-married"
"int"
0
)
(
ktv-create
"id-spouse"
"varchar"
"none"
)
(
ktv-create
"children-living"
"int"
0
)
(
ktv-create
"children-dead"
"int"
0
)
(
ktv-create
"children-together"
"int"
0
)
(
ktv-create
"children-apart"
"int"
0
)
(
ktv-create
"residence-after-marriage"
"varchar"
"none"
)
(
ktv-create
"num-siblings"
"int"
0
)
(
ktv-create
"birth-order"
"int"
0
)
(
ktv-create
"length-time"
"int"
0
)
(
ktv-create
"place-of-birth"
"varchar"
"none"
)
(
ktv-create
"num-residence-changes"
"int"
0
)
(
ktv-create
"village-visits-month"
"int"
0
)
(
ktv-create
"village-visits-year"
"int"
0
)
(
ktv-create
"occupation"
"varchar"
"none"
)
(
ktv-create
"contribute"
"int"
0
)
(
ktv-create
"own-land"
"int"
0
)
(
ktv-create
"rent-land"
"int"
0
)
(
ktv-create
"hire-land"
"int"
0
)
(
ktv-create
"house-type"
"varchar"
"none"
)
(
ktv-create
"loan"
"int"
0
)
(
ktv-create
"earning"
"int"
0
)
(
ktv-create
"radio"
"int"
0
)
(
ktv-create
"tv"
"int"
0
)
(
ktv-create
"mobile"
"int"
0
)
(
ktv-create
"visit-market"
"int"
0
)
(
ktv-create
"town-sell"
"int"
0
)
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
...
@@ -664,47 +708,7 @@
...
@@ -664,47 +708,7 @@
(
build-list-widget
(
build-list-widget
db
"sync"
'individuals
"individual"
"individual"
db
"sync"
'individuals
"individual"
"individual"
(
lambda
()
(
get-current
'household
#f
))
(
lambda
()
(
get-current
'household
#f
))
(
list
individual-ktvlist
)
(
ktv-create
"name"
"varchar"
(
mtext-lookup
'default-individual-name
))
(
ktv-create
"family"
"varchar"
(
mtext-lookup
'default-family-name
))
(
ktv-create
"photo-id"
"varchar"
(
mtext-lookup
'default-photo-id
))
(
ktv-create
"photo"
"file"
"none"
)
(
ktv-create
"tribe"
"varchar"
"none"
)
(
ktv-create
"subtribe"
"varchar"
"none"
)
(
ktv-create
"child"
"int"
0
)
(
ktv-create
"age"
"int"
0
)
(
ktv-create
"gender"
"varchar"
"Female"
)
(
ktv-create
"education"
"varchar"
"none"
)
(
ktv-create
"head-of-house"
"varchar"
"none"
)
(
ktv-create
"marital-status"
"varchar"
"none"
)
(
ktv-create
"times-married"
"int"
0
)
(
ktv-create
"id-spouse"
"varchar"
"none"
)
(
ktv-create
"children-living"
"int"
0
)
(
ktv-create
"children-dead"
"int"
0
)
(
ktv-create
"children-together"
"int"
0
)
(
ktv-create
"children-apart"
"int"
0
)
(
ktv-create
"residence-after-marriage"
"varchar"
"none"
)
(
ktv-create
"num-siblings"
"int"
0
)
(
ktv-create
"birth-order"
"int"
0
)
(
ktv-create
"length-time"
"int"
0
)
(
ktv-create
"place-of-birth"
"varchar"
"none"
)
(
ktv-create
"num-residence-changes"
"int"
0
)
(
ktv-create
"village-visits-month"
"int"
0
)
(
ktv-create
"village-visits-year"
"int"
0
)
(
ktv-create
"occupation"
"varchar"
"none"
)
(
ktv-create
"contribute"
"int"
0
)
(
ktv-create
"own-land"
"int"
0
)
(
ktv-create
"rent-land"
"int"
0
)
(
ktv-create
"hire-land"
"int"
0
)
(
ktv-create
"house-type"
"varchar"
"none"
)
(
ktv-create
"loan"
"int"
0
)
(
ktv-create
"earning"
"int"
0
)
(
ktv-create
"radio"
"int"
0
)
(
ktv-create
"tv"
"int"
0
)
(
ktv-create
"mobile"
"int"
0
)
(
ktv-create
"visit-market"
"int"
0
)
(
ktv-create
"town-sell"
"int"
0
)
))
(
delete-button
))
(
delete-button
))
(
lambda
(
activity
arg
)
(
lambda
(
activity
arg
)
...
@@ -1038,6 +1042,30 @@
...
@@ -1038,6 +1042,30 @@
"individual-chooser"
"individual-chooser"
(
build-activity
(
build-activity
(
vert
(
vert
(
horiz
(
medit-text
'quick-name
"normal"
(
lambda
(
v
)
(
set-current!
'chooser-quick-name
v
)
'
()))
(
mbutton-scale
'quick-add
(
lambda
()
(
list
(
alert-dialog
"quick-add-check"
(
mtext-lookup
'add-are-you-sure
)
(
lambda
(
v
)
(
cond
((
eqv?
v
1
)
(
set-current!
'choose-result
(
entity-create!
db
"sync"
"individual"
(
ktvlist-merge
individual-ktvlist
(
list
(
ktv
"name"
"varchar"
(
get-current
'chooser-quick-name
(
mtext-lookup
'no-name
)))
(
ktv
"parent"
"varchar"
(
get-current
'household
#f
))))))
(
list
(
finish-activity
0
))))))))))
(
linear-layout
(
linear-layout
(
make-id
"choose-pics"
)
'vertical
(
make-id
"choose-pics"
)
'vertical
(
layout
'fill-parent
'wrap-content
0.75
'centre
0
)
(
layout
'fill-parent
'wrap-content
0.75
'centre
0
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment