vancauwe commited on
Commit
bdca969
·
1 Parent(s): a464cd8

feat: logos and credits

Browse files
app/assets/icons/animal.png ADDED
app/assets/icons/bird.png ADDED
app/assets/icons/cardiogram.png ADDED
app/assets/icons/chicken.png ADDED
app/assets/icons/copyright.png ADDED
app/assets/icons/effective.png ADDED
app/assets/icons/eye.png ADDED
app/assets/icons/flying-doves-group.png ADDED
app/assets/icons/impact-2.png ADDED
app/assets/icons/impact.png ADDED
app/assets/icons/medical-app.png ADDED
app/assets/icons/neuron.png ADDED
app/assets/icons/pigeon.png ADDED
app/assets/icons/pin.png ADDED
app/assets/icons/schedule.png ADDED
app/assets/icons/swallow.png ADDED
app/credits.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ credits_text = """
2
+ # Credits
3
+
4
+ ## Scientific Expertise
5
+
6
+ - Isabelle Wethli (Institute for Fish and Wildlife Health, University of Bern)
7
+ - Dr. Mirjam Pewsner (Institute for Fish and Wildlife Health, University of Bern)
8
+ - Dr. Saskia Keller (Institute for Fish and Wildlife Health, University of Bern)
9
+
10
+ ## Front End Development
11
+
12
+ - Carlos Viviar Rios (Swiss Data Science Center)
13
+ - Laure Vancauwenberghe (Swiss Data Science Center)
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+ ### Icons
23
+
24
+ copyright: <a href="https://www.flaticon.com/free-icons/copyright" title="copyright icons">Copyright icons created by Freepik - Flaticon</a>
25
+
26
+ flying-doves-group: <a href="https://www.flaticon.com/free-icons/animal" title="animal icons">Animal icons created by Freepik - Flaticon</a>
27
+
28
+ Pigeon: <a href="https://www.flaticon.com/free-icons/bird" title="bird icons">Bird icons created by Freepik - Flaticon</a>
29
+
30
+ Bird: <a href="https://www.flaticon.com/free-icons/bird" title="bird icons">Bird icons created by PLANBSTUDIO - Flaticon</a>
31
+
32
+ Medical app: <a href="https://www.flaticon.com/free-icons/health" title="health icons">Health icons created by Smashicons - Flaticon</a>
33
+
34
+ Pin: <a href="https://www.flaticon.com/free-icons/google-maps" title="google maps icons">Google maps icons created by Creatype - Flaticon</a>
35
+
36
+ Cardiograms: <a href="https://www.flaticon.com/free-icons/medical" title="medical icons">Medical icons created by Freepik - Flaticon</a>
37
+
38
+ Swallow: <a href="https://www.flaticon.com/free-icons/swallow" title="swallow icons">Swallow icons created by Freepik - Flaticon</a>
39
+
40
+ Chicken: <a href="https://www.flaticon.com/free-icons/chicken" title="chicken icons">Chicken icons created by Freepik - Flaticon</a>
41
+
42
+ eye: <a href="https://www.flaticon.com/free-icons/healthcare-and-medical" title="healthcare and medical icons">Healthcare and medical icons created by juicy_fish - Flaticon</a>
43
+
44
+ neuron: <a href="https://www.flaticon.com/free-icons/neuron" title="neuron icons">Neuron icons created by manshagraphics - Flaticon</a>
45
+
46
+ impact: <a href="https://www.flaticon.com/free-icons/consequence" title="consequence icons">Consequence icons created by Awicon - Flaticon</a>
47
+
48
+ schedule: <a href="https://www.flaticon.com/free-icons/follow-up" title="follow up icons">Follow up icons created by iconsitee - Flaticon</a>
49
+
50
+ Effective: <a href="https://www.flaticon.com/free-icons/cog" title="cog icons">Cog icons created by monkik - Flaticon</a>
51
+
52
+ """
app/dead.py CHANGED
@@ -5,6 +5,13 @@ from physical.physical_checkbox import process_body_parts
5
  from follow_up.followup_events import create_followup_dropdowns, create_followup_open
6
  from validation_submission.add_json import add_data_to_individual
7
 
 
 
 
 
 
 
 
8
  def show_section_dead(visible, individual):
9
  if visible==True:
10
  individual = add_data_to_individual("wounded_state", "No", individual)
@@ -12,19 +19,25 @@ def show_section_dead(visible, individual):
12
 
13
  with gr.Column(visible=visible, elem_id="dead") as section_dead:
14
  gr.Markdown("# Dead Animal")
15
-
16
- gr.Markdown("## Do you know what conditions caused this?", label="description")
 
 
17
  radio_cause = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
18
  button_collision, button_deliberate_destruction, button_indirect_destruction, button_natural_cause, dropdown, dropdown_level2, openfield_level2, dropdown_extra_level2 = create_circumstances(visible=False)
19
 
20
- gr.Markdown("## Are there physical changes on the bird?" , label="description")
 
 
21
  radio_physical = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
22
  with gr.Row():
23
  physical_boxes = create_bird_anatomy(False, "dead")
24
  with gr.Column():
25
  checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts("dead", "None")
26
 
27
- gr.Markdown("## Follow-Up Events", label="Title")
 
 
28
  gr.Markdown("Please tell us what you did with the animal.", label="description")
29
  with gr.Row():
30
  fe_collection_dropdown, fe_recepient_dropdown, fe_radio_dropdown, fe_answer_dropdown = create_followup_dropdowns(visible, "dead")
 
5
  from follow_up.followup_events import create_followup_dropdowns, create_followup_open
6
  from validation_submission.add_json import add_data_to_individual
7
 
8
+ from dotenv import load_dotenv
9
+ import os
10
+ load_dotenv()
11
+ PATH = os.getcwd() + "/"
12
+ PATH_ASSETS = os.getenv('PATH_ASSETS')
13
+ PATH_ICONS = PATH + PATH_ASSETS + "icons/"
14
+
15
  def show_section_dead(visible, individual):
16
  if visible==True:
17
  individual = add_data_to_individual("wounded_state", "No", individual)
 
19
 
20
  with gr.Column(visible=visible, elem_id="dead") as section_dead:
21
  gr.Markdown("# Dead Animal")
22
+ gr.Button("Do you know what conditions caused this?",
23
+ icon=PATH_ICONS + "eye.png",
24
+ variant= "primary")
25
+ # gr.Markdown("## Do you know what conditions caused this?", label="description")
26
  radio_cause = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
27
  button_collision, button_deliberate_destruction, button_indirect_destruction, button_natural_cause, dropdown, dropdown_level2, openfield_level2, dropdown_extra_level2 = create_circumstances(visible=False)
28
 
29
+ gr.Button("Are there physical changes on the bird?",
30
+ icon=PATH_ICONS + "cardiogram.png",
31
+ variant= "primary")
32
  radio_physical = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
33
  with gr.Row():
34
  physical_boxes = create_bird_anatomy(False, "dead")
35
  with gr.Column():
36
  checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts("dead", "None")
37
 
38
+ gr.Button("Follow-Up Events",
39
+ icon=PATH_ICONS + "schedule.png",
40
+ variant= "primary")
41
  gr.Markdown("Please tell us what you did with the animal.", label="description")
42
  with gr.Row():
43
  fe_collection_dropdown, fe_recepient_dropdown, fe_radio_dropdown, fe_answer_dropdown = create_followup_dropdowns(visible, "dead")
app/main.py CHANGED
@@ -20,6 +20,13 @@ from styling.theme import css
20
 
21
  from geolocalisation.js_geolocation import js_geocode, display_location
22
 
 
 
 
 
 
 
 
23
  # with gr.Blocks(theme=theme, css=css) as demo:
24
  with gr.Blocks(theme='shivi/calm_seafoam') as demo:
25
  individual = gr.State({})
@@ -29,12 +36,19 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
29
  # ---------------------------------------------------------
30
  # Intro Text
31
  with gr.Row():
32
- with gr.Column(scale=1):
33
- title = gr.Markdown("# Welcome to Digiwild", label="Title")
34
- description = gr.Markdown("Please record your wildlife observations here !", label="description")
 
 
 
 
 
 
35
  with gr.Row():
36
- show_modal = gr.Button("Add an Animal", scale=3)
37
- submit_button = gr.Button("Submit All Animals", scale=1)
 
38
  df = gr.Dataframe(headers=["Identifier", "Location", "Wounded", "Dead"], visible=False, interactive=False)
39
  gallery = gr.Gallery(
40
  label="Gallery of Records", elem_id="gallery",
@@ -45,9 +59,14 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
45
  # ---------------------------------------------------------
46
  # Intro Text
47
  with gr.Row():
48
- with gr.Column(scale=1):
49
- title = gr.Markdown("# Animal Report", label="Title")
50
- description = gr.Markdown("Please record your observation here.", label="description")
 
 
 
 
 
51
 
52
  # ---------------------------------------------------------
53
  # Camera
@@ -62,7 +81,7 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
62
  # Location
63
  #with gr.Row():
64
  with gr.Column(scale=1):
65
- gr.Markdown("### Location")
66
  gr.Markdown("#### Location (Using address)")
67
  location = gr.Textbox(visible=True, interactive=True, label="Location of Sighting")
68
  #display location processing
@@ -89,7 +108,7 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
89
 
90
 
91
  # Introducing text_box for Species
92
- gr.Markdown("### General details")
93
  with gr.Row():
94
  specie = gr.Textbox(
95
  label="Species (if known)",
@@ -128,8 +147,16 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
128
  # ---------------------------------------------------------
129
  # ---------------------------------------------------------
130
  # Dead and Wounded Buttons
131
- gr.Markdown("## The State of the Animal", label="Title")
132
- gr.Markdown("Please tell us if the animal was wounded / sick or dead.", label="description")
 
 
 
 
 
 
 
 
133
  with gr.Row() as block_form:
134
  with gr.Column(scale=1):
135
  butt_wounded = gr.Button("Wounded / Sick", elem_id="wounded")
@@ -347,8 +374,10 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
347
  # Add One Individual's Data to the Dataframe
348
  # And Allow clearing of all previous output
349
  with gr.Row():
350
- button_df = gr.Button("Submit Animal Report", scale = 3)
351
- button_clear = gr.ClearButton(scale = 1,
 
 
352
  components=[
353
  camera,
354
  location, identified_location,
@@ -371,7 +400,8 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
371
  fe_name_recipient_wounded, fe_collection_ref_wounded,
372
  error_box
373
  ])
374
- button_close = gr.Button("Back to Display", scale = 1)
 
375
 
376
 
377
  # ---------------------------------------------------------
@@ -397,7 +427,14 @@ with gr.Blocks(theme='shivi/calm_seafoam') as demo:
397
  show_modal.click(create_json_one_individual)
398
  show_modal.click(create_tmp)
399
  #submit_button.click(save_and_rest_df, inputs=[df], outputs=[df])
 
 
 
 
 
 
400
 
 
401
 
402
  if __name__ == "__main__":
403
  demo.launch(server_name="0.0.0.0", server_port=7860)
 
20
 
21
  from geolocalisation.js_geolocation import js_geocode, display_location
22
 
23
+ from dotenv import load_dotenv
24
+ import os
25
+ load_dotenv()
26
+ PATH = os.getcwd() + "/"
27
+ PATH_ASSETS = os.getenv('PATH_ASSETS')
28
+ PATH_ICONS = PATH + PATH_ASSETS + "icons/"
29
+
30
  # with gr.Blocks(theme=theme, css=css) as demo:
31
  with gr.Blocks(theme='shivi/calm_seafoam') as demo:
32
  individual = gr.State({})
 
36
  # ---------------------------------------------------------
37
  # Intro Text
38
  with gr.Row():
39
+ with gr.Row():
40
+ gr.Image(PATH_ICONS+"swallow.png", scale =0.1,
41
+ interactive=False,
42
+ show_fullscreen_button = False, show_share_button=False,
43
+ show_download_button=False, show_label=False)
44
+ with gr.Column(scale=1):
45
+ title = gr.Markdown("# Welcome to Digiwild", label="Title")
46
+ description = gr.Markdown("Please record your wildlife observations here !", label="description")
47
+
48
  with gr.Row():
49
+ show_modal = gr.Button("Add an Animal", icon = PATH_ICONS+"chicken.png", scale=3)
50
+ submit_button = gr.Button("Submit All Animals", icon = PATH_ICONS+ "flying-doves-group.png", scale=1)
51
+ show_creds = gr.Button("Credits", icon=PATH_ICONS+"copyright.png", scale=0.5)
52
  df = gr.Dataframe(headers=["Identifier", "Location", "Wounded", "Dead"], visible=False, interactive=False)
53
  gallery = gr.Gallery(
54
  label="Gallery of Records", elem_id="gallery",
 
59
  # ---------------------------------------------------------
60
  # Intro Text
61
  with gr.Row():
62
+ with gr.Row():
63
+ gr.Image(PATH_ICONS+"pigeon.png", scale =0.1,
64
+ interactive=False,
65
+ show_fullscreen_button = False, show_share_button=False,
66
+ show_download_button=False, show_label=False)
67
+ with gr.Column(scale=1):
68
+ title = gr.Markdown("# Animal Report", label="Title")
69
+ description = gr.Markdown("Please record your observation here.", label="description")
70
 
71
  # ---------------------------------------------------------
72
  # Camera
 
81
  # Location
82
  #with gr.Row():
83
  with gr.Column(scale=1):
84
+ gr.Button("Location", icon=PATH_ICONS+"pin.png", variant="primary")
85
  gr.Markdown("#### Location (Using address)")
86
  location = gr.Textbox(visible=True, interactive=True, label="Location of Sighting")
87
  #display location processing
 
108
 
109
 
110
  # Introducing text_box for Species
111
+ gr.Button("General Details", icon=PATH_ICONS+"bird.png", variant="primary")
112
  with gr.Row():
113
  specie = gr.Textbox(
114
  label="Species (if known)",
 
147
  # ---------------------------------------------------------
148
  # ---------------------------------------------------------
149
  # Dead and Wounded Buttons
150
+ with gr.Row():
151
+ gr.Image(PATH_ICONS+"medical-app.png", scale =0.1,
152
+ interactive=False,
153
+ show_fullscreen_button = False, show_share_button=False,
154
+ show_download_button=False, show_label=False)
155
+ with gr.Column():
156
+ gr.Markdown("## The State of the Animal", label="Title")
157
+ gr.Markdown("Please tell us if the animal was wounded / sick or dead.", label="description")
158
+ gr.Markdown("Please fill out as many fields as you can, based on what you can see.", label="description")
159
+ gr.Markdown("Do not touch the animal unless absolutely necessary.", label="description")
160
  with gr.Row() as block_form:
161
  with gr.Column(scale=1):
162
  butt_wounded = gr.Button("Wounded / Sick", elem_id="wounded")
 
374
  # Add One Individual's Data to the Dataframe
375
  # And Allow clearing of all previous output
376
  with gr.Row():
377
+ button_df = gr.Button("Submit Animal Report", icon=PATH_ICONS+"effective.png",
378
+ variant="primary", scale = 3)
379
+ button_clear = gr.ClearButton(variant="primary",
380
+ scale = 1,
381
  components=[
382
  camera,
383
  location, identified_location,
 
400
  fe_name_recipient_wounded, fe_collection_ref_wounded,
401
  error_box
402
  ])
403
+ button_close = gr.Button("Back to Display", variant="primary", scale = 1)
404
+ show_creds_v2 = gr.Button("Credits", icon=PATH_ICONS+"copyright.png", scale=0.5)
405
 
406
 
407
  # ---------------------------------------------------------
 
427
  show_modal.click(create_json_one_individual)
428
  show_modal.click(create_tmp)
429
  #submit_button.click(save_and_rest_df, inputs=[df], outputs=[df])
430
+ # ---------------------------------------------------------
431
+ from credits import credits_text
432
+ with Modal(visible=False) as modal_creds:
433
+ gr.Markdown(credits_text)
434
+ show_creds.click(lambda: Modal(visible=True), None, modal_creds)
435
+ show_creds_v2.click(lambda: Modal(visible=True), None, modal_creds)
436
 
437
+
438
 
439
  if __name__ == "__main__":
440
  demo.launch(server_name="0.0.0.0", server_port=7860)
app/wounded.py CHANGED
@@ -6,6 +6,13 @@ from behavior.behavior_checkbox import create_behavior_checkbox
6
  from follow_up.followup_events import create_followup_dropdowns, create_followup_open
7
  from validation_submission.add_json import add_data_to_individual
8
 
 
 
 
 
 
 
 
9
  def show_section_wounded(visible, individual):
10
  if visible==True:
11
  individual = add_data_to_individual("wounded_state", "Yes", individual)
@@ -14,16 +21,22 @@ def show_section_wounded(visible, individual):
14
  with gr.Column(visible=visible, elem_id="wounded") as wounded_section:
15
  gr.Markdown("# Wounded / Sick Animal")
16
 
17
- gr.Markdown("## Do you know what conditions caused this?", label="description")
 
 
18
  radio_cause = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
19
  button_collision, button_deliberate_destruction, button_indirect_destruction, button_natural_cause, dropdown, dropdown_level2, openfield_level2, dropdown_extra_level2 = create_circumstances(visible=False)
20
 
21
- gr.Markdown("## Is the bird displaying behavioural changes?" , label="description")
 
 
22
  radio_behaviour = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
23
  with gr.Row():
24
  behavior_checkbox, behavior_text = create_behavior_checkbox("wounded", False)
25
 
26
- gr.Markdown("## Are there physical changes on the bird?" , label="description")
 
 
27
  radio_physical = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
28
  with gr.Row():
29
  physical_boxes = create_bird_anatomy(False, "wounded")
@@ -31,7 +44,9 @@ def show_section_wounded(visible, individual):
31
  checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts("wounded", "None")
32
 
33
 
34
- gr.Markdown("## Follow-Up Events", label="Title")
 
 
35
  gr.Markdown("Please tell us what you did with the animal.", label="description")
36
  with gr.Row():
37
  fe_collection_dropdown, fe_recepient_dropdown, fe_radio_dropdown, fe_answer_dropdown = create_followup_dropdowns(visible, "wounded")
 
6
  from follow_up.followup_events import create_followup_dropdowns, create_followup_open
7
  from validation_submission.add_json import add_data_to_individual
8
 
9
+ from dotenv import load_dotenv
10
+ import os
11
+ load_dotenv()
12
+ PATH = os.getcwd() + "/"
13
+ PATH_ASSETS = os.getenv('PATH_ASSETS')
14
+ PATH_ICONS = PATH + PATH_ASSETS + "icons/"
15
+
16
  def show_section_wounded(visible, individual):
17
  if visible==True:
18
  individual = add_data_to_individual("wounded_state", "Yes", individual)
 
21
  with gr.Column(visible=visible, elem_id="wounded") as wounded_section:
22
  gr.Markdown("# Wounded / Sick Animal")
23
 
24
+ gr.Button("Do you know what conditions caused this?",
25
+ icon=PATH_ICONS + "eye.png",
26
+ variant= "primary")
27
  radio_cause = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
28
  button_collision, button_deliberate_destruction, button_indirect_destruction, button_natural_cause, dropdown, dropdown_level2, openfield_level2, dropdown_extra_level2 = create_circumstances(visible=False)
29
 
30
+ gr.Button("Is the bird displaying behavioural changes?",
31
+ icon=PATH_ICONS + "neuron.png",
32
+ variant= "primary")
33
  radio_behaviour = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
34
  with gr.Row():
35
  behavior_checkbox, behavior_text = create_behavior_checkbox("wounded", False)
36
 
37
+ gr.Button("Are there physical changes on the bird?",
38
+ icon=PATH_ICONS + "cardiogram.png",
39
+ variant= "primary")
40
  radio_physical = gr.Radio(["Yes", "No"], value=None, show_label=False, interactive=True)
41
  with gr.Row():
42
  physical_boxes = create_bird_anatomy(False, "wounded")
 
44
  checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts("wounded", "None")
45
 
46
 
47
+ gr.Button("Follow-Up Events",
48
+ icon=PATH_ICONS + "schedule.png",
49
+ variant= "primary")
50
  gr.Markdown("Please tell us what you did with the animal.", label="description")
51
  with gr.Row():
52
  fe_collection_dropdown, fe_recepient_dropdown, fe_radio_dropdown, fe_answer_dropdown = create_followup_dropdowns(visible, "wounded")