Skip to content

Commit 177f6b0

Browse files
committed
fix: change upload of images process to make it easier, fixing bugs
1 parent 258f14d commit 177f6b0

File tree

15 files changed

+345
-697
lines changed

15 files changed

+345
-697
lines changed

webapp/backend/routes/organizations_routes.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,20 @@ async def upload_image(org_id: str,
3434
file_options={"content-type": file.content_type,
3535
"cache-control": "3600", "upsert": "true",},
3636
)
37-
38-
return {"filename":f"{url_s3_object}/{url_photo}", "detail": "Image uploaded","org_id":org_id}
37+
38+
return {"filename":f"{url_s3_object}{url_photo}", "detail": "Image uploaded","org_id":org_id}
3939

4040
except Exception as err:
4141
raise HTTPException(status_code=500, detail=str(err))
4242

4343
def validate_float(my_string:str):
4444
try:
45-
return float(my_string)
45+
if my_string is None or my_string=="":
46+
return None
47+
else:
48+
return float(my_string)
4649
except:
50+
print("Invalid float value")
4751
return None
4852

4953
@organization_route.post("/create_org",tags = ['organizations'])

webapp/backend/routes/project_routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ async def create_project(input:project_schema.CreateProject,
2626
name = input.name,
2727
type = input.type,
2828
description= input.description,
29-
logo = f"{url_s3_object}projects/{input.project_id}/images/{input.logo}" if input.logo else "",
30-
image = f"{url_s3_object}projects/{input.project_id}/images/{input.image}" if input.image else "",
29+
logo = f"{input.logo}" if input.logo else "",
30+
image = f"{input.image}" if input.image else "",
3131
website = input.website,
3232
repo = input.repo,
3333
guide = input.guide,

webapp/frontend/components/forms_popover.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import reflex_clerk_api as reclerk
33
from .user_input_text import SimpleTextInput
44
from .forms import ProjectForm,InstitutionForm, VideoForm
5-
from .org_forms import form_org,search_org
6-
from .project_forms import form_project,search_project
5+
from .org_forms import form_org,search_org,upload_logo_org
6+
from .project_forms import form_project,search_project,upload_image,upload_logo
77
from .user_forms import form_user,search_user_org,search_user_project
88
from ..states.auth_state import AuthState
99
from ..constants import urls
@@ -49,6 +49,9 @@ def add_new_popover(my_title:str):
4949
("user", form_user()),
5050
form_org(),
5151
),
52+
on_open_change=[upload_logo_org.State.clear_image,
53+
upload_image.State.clear_image,
54+
upload_logo.State.clear_image,]
5255
)
5356

5457
def search_popover(my_title:str):

webapp/frontend/components/org_forms.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
import reflex as rx
2-
import uuid
3-
from typing import List,Dict
4-
from .user_input_text import SimpleTextInput
5-
from .upload import upload_logo_org
6-
from ..states.project_state import ProjectState
2+
from .upload import ImageUpload
73
from ..states.org_state import OrgState
8-
from .upload import upload_logo_org
4+
# from .upload import upload_logo_org, upload_image
95
from .map import interactive_map
106
import clipboard
117
import os
128
from ..components.org_card import org_grid_vertical
139

10+
upload_logo_org = ImageUpload.create()
1411

1512
def form_org() -> rx.Component:
1613
all_organization: list[str] = ["Hospital", "Logistics and Transport",
1714
"Research and Development","Manufacturer"]
15+
1816

19-
return rx.dialog.content(
17+
return rx.fragment(
18+
rx.dialog.content(
2019
rx.dialog.title(f"Add new organization"),
2120
rx.dialog.description(
2221
f"Add new organization details, required fields marked with *",
@@ -67,7 +66,14 @@ def form_org() -> rx.Component:
6766
width="100%",
6867
),
6968
rx.hstack(
70-
upload_logo_org(title="Logo",my_image=rx.get_upload_url(OrgState.logo)),
69+
rx.vstack(rx.heading("Organization Logo",size="3"),
70+
upload_logo_org,
71+
rx.input(
72+
name="logo",
73+
value=upload_logo_org.State.image_name,
74+
type="hidden",
75+
),),
76+
# upload_logo_org(title="Logo",my_image=rx.get_upload_url(OrgState.logo)),
7177
rx.vstack(
7278
rx.hstack(rx.heading("Locate in the map",color="grey",size="3")),
7379
interactive_map(),
@@ -95,7 +101,7 @@ def form_org() -> rx.Component:
95101
"Cancel",
96102
color_scheme="gray",
97103
variant="soft",
98-
justify="start",),
104+
justify="start"),
99105
),
100106
rx.dialog.close(
101107
rx.button("Save",
@@ -115,8 +121,8 @@ def form_org() -> rx.Component:
115121
on_submit=OrgState.create_new_org,
116122
reset_on_submit=True,
117123
)
118-
)
119-
124+
),
125+
)
120126

121127

122128
def search_org() -> rx.Component:
@@ -162,6 +168,7 @@ def search_org() -> rx.Component:
162168
on_submit=OrgState.join_org,
163169
reset_on_submit=True,
164170
)
171+
165172
)
166173

167174
def discover_org():
@@ -238,8 +245,11 @@ def update_image_form():
238245
rx.dialog.trigger(rx.button("Update image"), on_click=OrgState.remove_uploaded_files),
239246
rx.dialog.content(
240247
rx.form(
241-
rx.dialog.title("Update location"),
242-
upload_logo_org(title="Logo",my_image=rx.get_upload_url(OrgState.logo)),
248+
rx.dialog.title("Update image"),
249+
rx.box(
250+
upload_logo_org,
251+
),
252+
#upload_logo_org(title="Logo",my_image=OrgState.logo),
243253
rx.spacer(size="5"),
244254
rx.flex(
245255
rx.dialog.close(
@@ -265,10 +275,11 @@ def update_image_form():
265275
),
266276
spacing="5",
267277
align="center",
268-
on_submit=OrgState.supabase_upload(OrgState.org_id),
278+
on_submit=OrgState.supabase_upload(OrgState.org_id,upload_logo_org.State.image_name),
269279
reset_on_submit=True,
270280
),
271-
)
281+
),
282+
on_open_change=[upload_logo_org.State.clear_image],
272283
),
273284

274285
# class OrganizationForm(rx.ComponentState):

webapp/frontend/components/project_forms.py

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
import reflex as rx
2-
import uuid
3-
from typing import List,Dict
4-
from .user_input_text import SimpleTextInput
5-
from .project_upload import upload_logo_project,upload_image_project
2+
from .upload import ImageUpload
63
from ..states.project_state import ProjectState
74
from ..states.org_state import OrgState
8-
from .upload import upload_logo_org
9-
from .map import interactive_map
105
from ..components.project_card import project_grid_vertical
116
from ..constants import urls
127

8+
upload_logo = ImageUpload.create()
9+
upload_image = ImageUpload.create()
1310

1411
def form_project() -> rx.Component:
1512
status: list[str] = ["Prototype","Technically tested","Clinically tested",
@@ -86,9 +83,22 @@ def form_project() -> rx.Component:
8683
width="100%",
8784
),
8885
rx.hstack(
89-
upload_logo_project(title="Logo",my_image=rx.get_upload_url(ProjectState.logo)),
90-
upload_image_project(title="Representative image",my_image=rx.get_upload_url(ProjectState.image)),
86+
rx.vstack(rx.heading("Project Logo",size="3"),
87+
upload_logo,
88+
rx.input(
89+
name="logo",
90+
value=upload_logo.State.image_name,
91+
type="hidden",
92+
),),
93+
rx.vstack(rx.heading("Project Image",size="3"),
94+
upload_image,
95+
rx.input(
96+
name="image",
97+
value=upload_image.State.image_name,
98+
type="hidden",
99+
),),
91100
width="100vw",
101+
spacing="2",
92102
),
93103
rx.hstack(
94104
rx.vstack(
@@ -130,7 +140,7 @@ def form_project() -> rx.Component:
130140
direction = "column",
131141
width="100%",
132142
),
133-
on_submit=ProjectState.create_new_project,
143+
on_submit=[ProjectState.create_new_project,ProjectState.remove_uploaded_files],
134144
reset_on_submit=True,
135145
)
136146
)
@@ -198,11 +208,11 @@ def discover_project():
198208

199209
def update_logo_form() -> rx.Component:
200210
return rx.dialog.root(
201-
rx.dialog.trigger(rx.button("Update project logo")),
211+
rx.dialog.trigger(rx.button("Update project logo"), on_click=ProjectState.remove_uploaded_files),
202212
rx.dialog.content(
203213
rx.form(
204-
rx.dialog.title("Update location"),
205-
upload_logo_project(title="Logo",my_image=rx.get_upload_url(ProjectState.logo)),
214+
rx.dialog.title("Update project logo"),
215+
upload_logo,
206216
rx.spacer(size="5"),
207217
rx.flex(
208218
rx.dialog.close(
@@ -228,20 +238,21 @@ def update_logo_form() -> rx.Component:
228238
),
229239
spacing="5",
230240
align="center",
231-
on_submit=ProjectState.supabase_upload_logo(ProjectState.project_id),
241+
on_submit=ProjectState.supabase_upload_logo(ProjectState.project_id, upload_logo.State.image_name),
232242
reset_on_submit=True,
233243
),
234-
)
244+
),
245+
on_open_change=[upload_logo.State.clear_image],
235246
),
236247

237248

238249
def update_image_form() -> rx.Component:
239250
return rx.dialog.root(
240-
rx.dialog.trigger(rx.button("Update image")),
251+
rx.dialog.trigger(rx.button("Update image"), on_click=ProjectState.remove_uploaded_files),
241252
rx.dialog.content(
242253
rx.form(
243-
rx.dialog.title("Update location"),
244-
upload_image_project(title="Logo",my_image=rx.get_upload_url(ProjectState.image)),
254+
rx.dialog.title("Update image"),
255+
upload_image,
245256
rx.spacer(size="5"),
246257
rx.flex(
247258
rx.dialog.close(
@@ -267,10 +278,11 @@ def update_image_form() -> rx.Component:
267278
),
268279
spacing="5",
269280
align="center",
270-
on_submit=ProjectState.supabase_upload_image(ProjectState.project_id),
281+
on_submit=ProjectState.supabase_upload_image(ProjectState.project_id,upload_image.State.image_name),
271282
reset_on_submit=True,
272283
),
273-
)
274-
),
284+
),
285+
on_open_change=[upload_image.State.clear_image],
286+
)
275287

276288

webapp/frontend/components/project_upload.py

Lines changed: 0 additions & 129 deletions
This file was deleted.

0 commit comments

Comments
 (0)