Edoruin commited on
Commit
31fec9f
·
1 Parent(s): a08fe01

try to fix manifest issues and create responsive app

Browse files
Files changed (2) hide show
  1. app/main.py +73 -42
  2. assets/web/manifest.json +6 -4
app/main.py CHANGED
@@ -251,11 +251,31 @@ def main(page: ft.Page):
251
  page.views.append(
252
  ft.View("/", [
253
  ft.AppBar(title=ft.Text("MAKERSPACE"), bgcolor="#1a1c1e"),
254
- ft.Column([
255
- ft.Text("PANEL DE CONTROL", size=24, weight="bold"),
256
- ft.ElevatedButton("GITLAB REPOS", icon=ft.Icons.FOLDER, on_click=lambda _: page.go("/repos"), height=80, width=float("inf")),
257
- ft.ElevatedButton("SISTEMA PRÉSTAMOS", icon=ft.Icons.BUILD, on_click=lambda _: page.go("/prestamos"), height=80, width=float("inf"), bgcolor=ft.Colors.BLUE_800),
258
- ], spacing=20, horizontal_alignment=ft.CrossAxisAlignment.CENTER)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  ])
260
  )
261
 
@@ -264,8 +284,8 @@ def main(page: ft.Page):
264
  opciones_hora = [ft.dropdown.Option(f"{h:02d}:00") for h in range(8, 16)]
265
 
266
  nombre = ft.TextField(label="Nombre del solicitante", expand=True, prefix_icon=ft.Icons.PERSON)
267
- h_ext = ft.Dropdown(label="Hora Salida", options=opciones_hora, value="08:00", expand=1)
268
- h_dev = ft.Dropdown(label="Devolución", options=opciones_hora, value="15:00", expand=1)
269
 
270
  st_txt = ft.Text("", weight="bold")
271
  lista_historial = ft.ListView(expand=True, spacing=10)
@@ -274,7 +294,7 @@ def main(page: ft.Page):
274
  container_items = ft.Column(spacing=10)
275
 
276
  def crear_fila_item():
277
- return ft.Row([
278
  ft.Dropdown(
279
  label="Categoría",
280
  options=[
@@ -282,16 +302,18 @@ def main(page: ft.Page):
282
  ft.dropdown.Option("Dispositivos Eléctricos")
283
  ],
284
  value="Herramientas",
285
- width=180
286
  ),
287
- ft.TextField(label="Descripción", expand=True),
288
- ft.TextField(label="Cant.", value="1", width=70, text_align=ft.TextAlign.CENTER),
289
- ft.IconButton(ft.Icons.DELETE_OUTLINE, icon_color="red", on_click=lambda e: eliminar_fila(e))
290
- ], alignment=ft.MainAxisAlignment.START)
 
 
291
 
292
  def eliminar_fila(e):
293
  if len(container_items.controls) > 1:
294
- container_items.controls.remove(e.control.parent)
295
  page.update()
296
 
297
  def agregar_fila(e):
@@ -335,7 +357,7 @@ def main(page: ft.Page):
335
  for fila in container_items.controls:
336
  cat = fila.controls[0].value
337
  txt = fila.controls[1].value
338
- ct = fila.controls[2].value
339
  if txt:
340
  items_solicitados.append(f"• [{cat}] {txt} (x{ct})")
341
 
@@ -378,33 +400,42 @@ def main(page: ft.Page):
378
  page.views.append(
379
  ft.View("/prestamos", [
380
  ft.AppBar(title=ft.Text("Préstamos"), bgcolor="#1a1c1e"),
381
- ft.Column([
382
- ft.Row([
383
- ft.Text("SOLICITAR PRÉSTAMO", size=18, weight="bold"),
384
- ft.ElevatedButton("🔔 ACTIVAR ALERTAS", icon=ft.Icons.NOTIFICATIONS_ACTIVE,
385
- on_click=pedir_permiso_notif, bgcolor=ft.Colors.BLUE_GREY_900)
386
- ], alignment=ft.MainAxisAlignment.SPACE_BETWEEN),
387
-
388
- nombre,
389
- ft.Row([h_ext, h_dev], spacing=10),
390
-
391
- ft.Divider(),
392
- ft.Row([
393
- ft.Text("LISTA DE HERRAMIENTAS", size=14, weight="bold"),
394
- ft.IconButton(ft.Icons.ADD_CIRCLE, icon_color="green", on_click=agregar_fila)
395
- ], alignment=ft.MainAxisAlignment.SPACE_BETWEEN),
396
-
397
- container_items,
398
-
399
- ft.ElevatedButton("ENVIAR SOLICITUD TOTAL", icon=ft.Icons.SEND, on_click=registrar,
400
- bgcolor=ft.Colors.GREEN_800, color="white", height=50, width=float("inf")),
401
-
402
- st_txt,
403
- ft.Divider(),
404
- ft.Text("HISTORIAL RECIENTE", size=18, weight="bold"),
405
- lista_historial,
406
- ft.TextButton("Volver", on_click=lambda _: page.go("/"))
407
- ], scroll=ft.ScrollMode.ADAPTIVE, expand=True, spacing=15)
 
 
 
 
 
 
 
 
 
408
  ])
409
  )
410
 
 
251
  page.views.append(
252
  ft.View("/", [
253
  ft.AppBar(title=ft.Text("MAKERSPACE"), bgcolor="#1a1c1e"),
254
+ ft.Container(
255
+ content=ft.Column([
256
+ ft.Text("PANEL DE CONTROL", size=24, weight="bold", text_align=ft.TextAlign.CENTER),
257
+ ft.ResponsiveRow([
258
+ ft.ElevatedButton(
259
+ "GITLAB REPOS",
260
+ icon=ft.Icons.FOLDER,
261
+ on_click=lambda _: page.go("/repos"),
262
+ height=80,
263
+ col={"sm": 12, "md": 6}
264
+ ),
265
+ ft.ElevatedButton(
266
+ "SISTEMA PRÉSTAMOS",
267
+ icon=ft.Icons.BUILD,
268
+ on_click=lambda _: page.go("/prestamos"),
269
+ height=80,
270
+ bgcolor=ft.Colors.BLUE_800,
271
+ col={"sm": 12, "md": 6}
272
+ ),
273
+ ], spacing=20, alignment=ft.MainAxisAlignment.CENTER),
274
+ ], spacing=30, horizontal_alignment=ft.CrossAxisAlignment.CENTER),
275
+ padding=20,
276
+ alignment=ft.alignment.top_center,
277
+ expand=True
278
+ )
279
  ])
280
  )
281
 
 
284
  opciones_hora = [ft.dropdown.Option(f"{h:02d}:00") for h in range(8, 16)]
285
 
286
  nombre = ft.TextField(label="Nombre del solicitante", expand=True, prefix_icon=ft.Icons.PERSON)
287
+ h_ext = ft.Dropdown(label="Hora Salida", options=opciones_hora, value="08:00", expand=True)
288
+ h_dev = ft.Dropdown(label="Devolución", options=opciones_hora, value="15:00", expand=True)
289
 
290
  st_txt = ft.Text("", weight="bold")
291
  lista_historial = ft.ListView(expand=True, spacing=10)
 
294
  container_items = ft.Column(spacing=10)
295
 
296
  def crear_fila_item():
297
+ return ft.ResponsiveRow([
298
  ft.Dropdown(
299
  label="Categoría",
300
  options=[
 
302
  ft.dropdown.Option("Dispositivos Eléctricos")
303
  ],
304
  value="Herramientas",
305
+ col={"sm": 12, "md": 3}
306
  ),
307
+ ft.TextField(label="Descripción", col={"sm": 12, "md": 6}),
308
+ ft.Row([
309
+ ft.TextField(label="Cant.", value="1", width=70, text_align=ft.TextAlign.CENTER),
310
+ ft.IconButton(ft.Icons.DELETE_OUTLINE, icon_color="red", on_click=lambda e: eliminar_fila(e))
311
+ ], col={"sm": 12, "md": 3}, alignment=ft.MainAxisAlignment.END)
312
+ ], alignment=ft.MainAxisAlignment.START, vertical_alignment=ft.CrossAxisAlignment.CENTER)
313
 
314
  def eliminar_fila(e):
315
  if len(container_items.controls) > 1:
316
+ container_items.controls.remove(e.control.parent.parent)
317
  page.update()
318
 
319
  def agregar_fila(e):
 
357
  for fila in container_items.controls:
358
  cat = fila.controls[0].value
359
  txt = fila.controls[1].value
360
+ ct = fila.controls[2].controls[0].value
361
  if txt:
362
  items_solicitados.append(f"• [{cat}] {txt} (x{ct})")
363
 
 
400
  page.views.append(
401
  ft.View("/prestamos", [
402
  ft.AppBar(title=ft.Text("Préstamos"), bgcolor="#1a1c1e"),
403
+ ft.Container(
404
+ content=ft.Column([
405
+ ft.Row([
406
+ ft.Text("SOLICITAR PRÉSTAMO", size=18, weight="bold"),
407
+ ft.ElevatedButton("🔔 ALERTAS", icon=ft.Icons.NOTIFICATIONS_ACTIVE,
408
+ on_click=pedir_permiso_notif, bgcolor=ft.Colors.BLUE_GREY_900)
409
+ ], alignment=ft.MainAxisAlignment.SPACE_BETWEEN),
410
+
411
+ nombre,
412
+ ft.ResponsiveRow([
413
+ ft.Container(h_ext, col={"sm": 6, "md": 6}),
414
+ ft.Container(h_dev, col={"sm": 6, "md": 6}),
415
+ ], spacing=10),
416
+
417
+ ft.Divider(),
418
+ ft.Row([
419
+ ft.Text("LISTA DE HERRAMIENTAS", size=14, weight="bold"),
420
+ ft.IconButton(ft.Icons.ADD_CIRCLE, icon_color="green", on_click=agregar_fila)
421
+ ], alignment=ft.MainAxisAlignment.SPACE_BETWEEN),
422
+
423
+ container_items,
424
+
425
+ ft.ElevatedButton("ENVIAR SOLICITUD TOTAL", icon=ft.Icons.SEND, on_click=registrar,
426
+ bgcolor=ft.Colors.GREEN_800, color="white", height=50, width=float("inf")),
427
+
428
+ st_txt,
429
+ ft.Divider(),
430
+ ft.Text("HISTORIAL RECIENTE", size=18, weight="bold"),
431
+ lista_historial,
432
+ ft.TextButton("Volver", on_click=lambda _: page.go("/"))
433
+ ], spacing=15),
434
+ padding=20,
435
+ max_width=800,
436
+ alignment=ft.alignment.top_center,
437
+ expand=True
438
+ )
439
  ])
440
  )
441
 
assets/web/manifest.json CHANGED
@@ -3,14 +3,16 @@
3
  "short_name": "makerspace",
4
  "icons": [
5
  {
6
- "src": "icon192x192.png",
7
  "sizes": "192x192",
8
- "type": "image/png"
 
9
  },
10
  {
11
- "src": "icon-512x512.png",
12
  "sizes": "512x512",
13
- "type": "image/png"
 
14
  }
15
  ],
16
  "theme_color": "#1a1c1e",
 
3
  "short_name": "makerspace",
4
  "icons": [
5
  {
6
+ "src": "../icon192x192.png",
7
  "sizes": "192x192",
8
+ "type": "image/png",
9
+ "purpose": "any maskable"
10
  },
11
  {
12
+ "src": "../icon-512x512.png",
13
  "sizes": "512x512",
14
+ "type": "image/png",
15
+ "purpose": "any maskable"
16
  }
17
  ],
18
  "theme_color": "#1a1c1e",