complete
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"username": "admin", "authenticated": true, "id": 0, "level": 0, "name": "Matteo Benedetto"}
|
||||
@@ -0,0 +1 @@
|
||||
{"username": "admin", "authenticated": true, "id": 0, "level": 0, "name": "Matteo Benedetto"}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,22 @@
|
||||
import csv
|
||||
import json
|
||||
|
||||
csvfile = open('allievi.csv', 'r')
|
||||
jsonfile = open('file.json', 'w')
|
||||
|
||||
reader = csv.reader(csvfile)
|
||||
next(reader, None) # skip the headers
|
||||
|
||||
for row in reader:
|
||||
data = {}
|
||||
data['nome'] = row[1]
|
||||
data['cognome'] = row[2]
|
||||
data['livello'] = int(row[0].split()[1]) # assuming 'Beginner 1' should become 1
|
||||
data['sede'] = 0 # static value
|
||||
data['telefono'] = row[3]
|
||||
data['instagram'] = '@' + row[1] # assuming Instagram handle is @<name>
|
||||
data['email'] = row[4] if row[4] else "" # default email if not provided
|
||||
data['pagamenti'] = []
|
||||
data['presenze'] = []
|
||||
json.dump(data, jsonfile)
|
||||
jsonfile.write('\n')
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"useTabs": false
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
[
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-02 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71b9"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-04 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ba"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-04 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71bb"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-09 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71bc"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-11 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71bd"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-11 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71be"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-16 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71bf"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-18 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c0"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-18 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71c1"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-23 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c2"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-25 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c3"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-25 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71c4"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-30 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c5"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-01 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c6"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-01 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71c7"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-06 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c8"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-08 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71c9"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-08 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71ca"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-13 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71cb"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-15 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71cc"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-15 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71cd"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-20 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ce"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-22 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71cf"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-22 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71d0"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-27 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d1"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-29 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d2"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-29 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71d3"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-04 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d4"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-06 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d5"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-06 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71d6"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-11 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d7"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-13 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71d8"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-13 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71d9"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-18 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71da"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-20 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71db"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-20 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71dc"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-25 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71dd"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-27 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71de"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-27 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71df"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-01 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e0"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-03 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e1"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-03 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71e2"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-08 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e3"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-10 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e4"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-10 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71e5"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-15 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e6"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-17 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e7"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-17 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71e8"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-22 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71e9"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-24 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ea"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-24 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71eb"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-29 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ec"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-31 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ed"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-31 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71ee"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-05 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ef"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-07 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f0"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-07 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71f1"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-12 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f2"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-14 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f3"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-14 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71f4"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-19 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f5"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-21 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f6"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-21 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71f7"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-26 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f8"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-28 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71f9"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-28 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71fa"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-04 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71fb"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-06 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71fc"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-06 20:30:00", "_id": {"$oid": "65075496af4e5761eefc71fd"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-11 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71fe"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-13 19:30:00", "_id": {"$oid": "65075496af4e5761eefc71ff"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-13 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7200"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-18 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7201"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-20 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7202"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-20 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7203"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-25 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7204"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-27 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7205"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-27 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7206"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-01 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7207"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-03 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7208"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-03 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7209"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-08 19:30:00", "_id": {"$oid": "65075496af4e5761eefc720a"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-10 19:30:00", "_id": {"$oid": "65075496af4e5761eefc720b"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-10 20:30:00", "_id": {"$oid": "65075496af4e5761eefc720c"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-15 19:30:00", "_id": {"$oid": "65075496af4e5761eefc720d"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-17 19:30:00", "_id": {"$oid": "65075496af4e5761eefc720e"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-17 20:30:00", "_id": {"$oid": "65075496af4e5761eefc720f"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-22 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7210"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-24 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7211"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-24 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7212"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-29 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7213"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-01 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7214"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-01 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7215"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-06 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7216"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-08 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7217"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-08 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7218"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-13 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7219"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-15 19:30:00", "_id": {"$oid": "65075496af4e5761eefc721a"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-15 20:30:00", "_id": {"$oid": "65075496af4e5761eefc721b"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-20 19:30:00", "_id": {"$oid": "65075496af4e5761eefc721c"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-22 19:30:00", "_id": {"$oid": "65075496af4e5761eefc721d"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-22 20:30:00", "_id": {"$oid": "65075496af4e5761eefc721e"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-27 19:30:00", "_id": {"$oid": "65075496af4e5761eefc721f"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-29 19:30:00", "_id": {"$oid": "65075496af4e5761eefc7220"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-29 20:30:00", "_id": {"$oid": "65075496af4e5761eefc7221"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-09-25 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9a6"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-09-27 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9a7"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-09-27 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9a8"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-02 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9a9"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-04 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9aa"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-04 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ab"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-09 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ac"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-11 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ad"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-11 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ae"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-16 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9af"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-18 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b0"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-18 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9b1"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-23 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b2"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-10-25 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b3"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-10-25 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9b4"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-10-30 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b5"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-01 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b6"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-01 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9b7"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-06 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b8"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-08 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9b9"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-08 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ba"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-13 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9bb"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-15 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9bc"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-15 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9bd"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-20 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9be"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-22 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9bf"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-22 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9c0"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-11-27 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c1"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-11-29 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c2"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-11-29 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9c3"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-04 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c4"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-06 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c5"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-06 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9c6"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-11 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c7"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-13 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9c8"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-13 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9c9"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-18 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ca"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-20 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9cb"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-20 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9cc"}},
|
||||
{"sede": 1, "livello": 0, "data": "2023-12-25 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9cd"}},
|
||||
{"sede": 0, "livello": 0, "data": "2023-12-27 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ce"}},
|
||||
{"sede": 0, "livello": 1, "data": "2023-12-27 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9cf"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-01 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d0"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-03 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d1"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-03 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9d2"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-08 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d3"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-10 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d4"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-10 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9d5"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-15 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d6"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-17 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d7"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-17 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9d8"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-22 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9d9"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-24 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9da"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-24 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9db"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-01-29 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9dc"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-01-31 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9dd"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-01-31 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9de"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-05 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9df"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-07 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e0"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-07 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9e1"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-12 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e2"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-14 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e3"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-14 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9e4"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-19 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e5"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-21 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e6"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-21 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9e7"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-02-26 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e8"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-02-28 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9e9"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-02-28 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ea"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-04 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9eb"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-06 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ec"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-06 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ed"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-11 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ee"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-13 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9ef"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-13 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9f0"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-18 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f1"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-20 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f2"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-20 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9f3"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-03-25 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f4"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-03-27 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f5"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-03-27 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9f6"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-01 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f7"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-03 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9f8"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-03 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9f9"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-08 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9fa"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-10 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9fb"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-10 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9fc"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-15 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9fd"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-17 19:30:00", "_id": {"$oid": "65078edee77138409ec9f9fe"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-17 20:30:00", "_id": {"$oid": "65078edee77138409ec9f9ff"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-22 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa00"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-04-24 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa01"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-04-24 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa02"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-04-29 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa03"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-01 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa04"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-01 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa05"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-06 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa06"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-08 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa07"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-08 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa08"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-13 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa09"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-15 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa0a"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-15 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa0b"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-20 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa0c"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-22 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa0d"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-22 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa0e"}},
|
||||
{"sede": 1, "livello": 0, "data": "2024-05-27 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa0f"}},
|
||||
{"sede": 0, "livello": 0, "data": "2024-05-29 19:30:00", "_id": {"$oid": "65078edee77138409ec9fa10"}},
|
||||
{"sede": 0, "livello": 1, "data": "2024-05-29 20:30:00", "_id": {"$oid": "65078edee77138409ec9fa11"}}
|
||||
]
|
||||
@@ -0,0 +1,5 @@
|
||||
[
|
||||
{"id": 3, "nome": "Advanced", "_id": {"$oid": "65082a3a04d206fd0a90cbd1"}},
|
||||
{"id": 2, "nome": "Improver", "_id": {"$oid": "65082a3a04d206fd0a90cbd2"}},
|
||||
{"id": 1, "nome": "Beginners", "_id": {"$oid": "65082a3a04d206fd0a90cbd3"}}
|
||||
]
|
||||
@@ -0,0 +1,4 @@
|
||||
[
|
||||
{"id": 0, "nome": "matera", "_id": {"$oid": "65081ca20aaed05c1b550a09"}},
|
||||
{"id": 1, "nome": "altamura", "_id": {"$oid": "65081ca20aaed05c1b550a0a"}}
|
||||
]
|
||||
+86
-2
@@ -1,6 +1,90 @@
|
||||
[
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": [], "presenze": ["2022-10-20 00:00:00", "2023-09-20 00:00:00", "2023-09-20 00:00:00", "2023-09-16 00:00:00", "2023-10-02 00:00:00", "2023-10-03 00:00:00"], "_id": {"$oid": "65058867e0fd4f3c838ebdee"}},
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": ["2022-10-01 00:00:00"], "presenze": ["2022-10-20 00:00:00", "2023-09-20 00:00:00", "2023-09-20 00:00:00", "2023-09-16 00:00:00", "2023-10-02 00:00:00", "2023-10-03 00:00:00"], "_id": {"$oid": "65058867e0fd4f3c838ebdee"}},
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": [], "presenze": ["2023-09-20 00:00:00", "2023-09-20 00:00:00", "2023-09-20 00:00:00", "2023-09-20 00:00:00", "2023-09-20 00:00:00"], "_id": {"$oid": "65058993375740a81b75a9f4"}},
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": [], "presenze": [], "_id": {"$oid": "65058997515c441f46c71e08"}},
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": [], "presenze": [], "_id": {"$oid": "6505bdd911f5ff2d8f876ec8"}}
|
||||
{"nome": "Jim", "cognome": "Doe", "livello": 1, "sede": 1, "telefono": "1234567890", "instagram": "@johndoe", "pagamenti": [], "presenze": [], "_id": {"$oid": "6505bdd911f5ff2d8f876ec8"}},
|
||||
{"nome": "SARA", "cognome": "BALDONI", "livello": 2, "sede": 0, "telefono": "388 341 4470", "instagram": "@SARA", "email": "", "pagamenti": [], "presenze": ["2023-09-27 00:00:00", "2023-10-04 00:00:00", "2024-01-03 00:00:00"], "_id": {"$oid": "6507909f82043fdf3bdb2e74"}},
|
||||
{"nome": "ARGENSIA", "cognome": "BONORA", "livello": 1, "sede": 0, "telefono": "329 297 3561", "instagram": "@ARGENSIA", "email": "", "pagamenti": [], "presenze": ["2023-09-27 00:00:00"], "_id": {"$oid": "6507909f82043fdf3bdb2e75"}},
|
||||
{"nome": "MARIA VITTORIA ", "cognome": "CARNOVALE", "livello": 1, "sede": 0, "telefono": "340 700 2721", "instagram": "@MARIA VITTORIA ", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e76"}},
|
||||
{"nome": "MARILIA", "cognome": "CASO", "livello": 1, "sede": 0, "telefono": "348 327 8981", "instagram": "@MARILIA", "email": "gabbiano246@hotmail.com", "pagamenti": [], "presenze": ["2023-10-18 00:00:00"], "_id": {"$oid": "6507909f82043fdf3bdb2e77"}},
|
||||
{"nome": "ANGELO", "cognome": "CICCHETTI", "livello": 1, "sede": 0, "telefono": "348 439 7116", "instagram": "@ANGELO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e78"}},
|
||||
{"nome": "ANTONIETTA", "cognome": "CIRIGLIANO", "livello": 1, "sede": 0, "telefono": "339 851 4542", "instagram": "@ANTONIETTA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e79"}},
|
||||
{"nome": "ROSSANA", "cognome": "DE SIMMEO", "livello": 1, "sede": 0, "telefono": "333 589 2872", "instagram": "@ROSSANA", "email": "rossana.dess@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7a"}},
|
||||
{"nome": "ENRICA", "cognome": "DESTENA", "livello": 1, "sede": 0, "telefono": "327 955 9479", "instagram": "@ENRICA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7b"}},
|
||||
{"nome": "ANNA", "cognome": "DI CUIA", "livello": 1, "sede": 0, "telefono": "334 386 6875", "instagram": "@ANNA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7c"}},
|
||||
{"nome": "ANGELICA", "cognome": "DILIDDO", "livello": 1, "sede": 0, "telefono": "333 890 3365", "instagram": "@ANGELICA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7d"}},
|
||||
{"nome": "FRANCESCO", "cognome": "ERAMO", "livello": 1, "sede": 0, "telefono": "333 304 8801", "instagram": "@FRANCESCO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7e"}},
|
||||
{"nome": "PAOLO", "cognome": "FASANO", "livello": 1, "sede": 0, "telefono": "036 856 6479", "instagram": "@PAOLO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e7f"}},
|
||||
{"nome": "ROSA", "cognome": "FRANCOMAGRO", "livello": 1, "sede": 0, "telefono": "320 625 7483", "instagram": "@ROSA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e80"}},
|
||||
{"nome": "LUCIA", "cognome": "FRESCURA", "livello": 1, "sede": 0, "telefono": "388 160 5146", "instagram": "@LUCIA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e81"}},
|
||||
{"nome": "MARIABRUNA", "cognome": "LIMITE", "livello": 1, "sede": 0, "telefono": "389 504 5268", "instagram": "@MARIABRUNA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e82"}},
|
||||
{"nome": "FRANCESCA", "cognome": "LIONETTI", "livello": 1, "sede": 0, "telefono": "329 782 1749", "instagram": "@FRANCESCA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e83"}},
|
||||
{"nome": "MARIANNA", "cognome": "LOIUDICE", "livello": 1, "sede": 0, "telefono": "328 146 8450", "instagram": "@MARIANNA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e84"}},
|
||||
{"nome": "IVAN", "cognome": "MAGGIORE", "livello": 1, "sede": 0, "telefono": "339 472 2512", "instagram": "@IVAN", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e85"}},
|
||||
{"nome": "ANTONIO", "cognome": "MALCANGI", "livello": 1, "sede": 0, "telefono": "333 268 8744", "instagram": "@ANTONIO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e86"}},
|
||||
{"nome": "FRANCESCO", "cognome": "MARAGLINO", "livello": 1, "sede": 0, "telefono": "340 874 3698", "instagram": "@FRANCESCO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e87"}},
|
||||
{"nome": "MARIELLA ", "cognome": "MARTINO", "livello": 1, "sede": 0, "telefono": "339 261 4130", "instagram": "@MARIELLA ", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e88"}},
|
||||
{"nome": "ELGA", "cognome": "MELUCCI", "livello": 1, "sede": 0, "telefono": "320 147 1346", "instagram": "@ELGA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e89"}},
|
||||
{"nome": "MARTINA", "cognome": "MONTAGANO", "livello": 1, "sede": 0, "telefono": "339 380 4392", "instagram": "@MARTINA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8a"}},
|
||||
{"nome": "VITO", "cognome": "MONTEMURRO", "livello": 1, "sede": 0, "telefono": "320 694 0666", "instagram": "@VITO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8b"}},
|
||||
{"nome": "PAOLO", "cognome": "MORETTI", "livello": 1, "sede": 0, "telefono": "389 640 7781", "instagram": "@PAOLO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8c"}},
|
||||
{"nome": "NUNZIO", "cognome": "MORO", "livello": 1, "sede": 0, "telefono": "333 371 8003", "instagram": "@NUNZIO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8d"}},
|
||||
{"nome": "PAOLA", "cognome": "PAOLICELLI", "livello": 1, "sede": 0, "telefono": "320 742 1274", "instagram": "@PAOLA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8e"}},
|
||||
{"nome": "ELENA", "cognome": "PARISI", "livello": 1, "sede": 0, "telefono": "347 834 5664", "instagram": "@ELENA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e8f"}},
|
||||
{"nome": "MANUELA", "cognome": "PERSIA", "livello": 1, "sede": 0, "telefono": "320 947 5707", "instagram": "@MANUELA", "email": "manuela.persia@hotmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e90"}},
|
||||
{"nome": "IVAN", "cognome": "PERSIA", "livello": 1, "sede": 0, "telefono": "320 381 8396", "instagram": "@IVAN", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e91"}},
|
||||
{"nome": "MARIA", "cognome": "PETRONELLA", "livello": 1, "sede": 0, "telefono": "320 838 0131", "instagram": "@MARIA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e92"}},
|
||||
{"nome": "ALESSIA", "cognome": "PLASMATI", "livello": 1, "sede": 0, "telefono": "327 943 3511", "instagram": "@ALESSIA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e93"}},
|
||||
{"nome": "ANTONIO", "cognome": "RICCIULLI", "livello": 1, "sede": 0, "telefono": "320 486 6306", "instagram": "@ANTONIO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e94"}},
|
||||
{"nome": "MARTINA", "cognome": "RIPOLI", "livello": 1, "sede": 0, "telefono": "327 619 2581", "instagram": "@MARTINA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e95"}},
|
||||
{"nome": "ANGELO", "cognome": "ROMANO", "livello": 1, "sede": 0, "telefono": "334 292 9743", "instagram": "@ANGELO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e96"}},
|
||||
{"nome": "SANTINA", "cognome": "SCHIAVONE", "livello": 1, "sede": 0, "telefono": "338 925 0994", "instagram": "@SANTINA", "email": "schiavonesantininaines@libero.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e97"}},
|
||||
{"nome": "DOMENICO", "cognome": "STRAMMIELLO", "livello": 1, "sede": 0, "telefono": "333 356 5593", "instagram": "@DOMENICO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e98"}},
|
||||
{"nome": "VALENTINA", "cognome": "TATARANNI", "livello": 1, "sede": 0, "telefono": "393 941 7045", "instagram": "@VALENTINA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e99"}},
|
||||
{"nome": "ROBERTA", "cognome": "TRITTO", "livello": 1, "sede": 0, "telefono": "327 006 4600", "instagram": "@ROBERTA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9a"}},
|
||||
{"nome": "AMY ANN", "cognome": "WEIDEMAN", "livello": 1, "sede": 0, "telefono": "339 282 3618", "instagram": "@AMY ANN", "email": "amyannweideman18@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9b"}},
|
||||
{"nome": "CLAUDIA", "cognome": "ZANCAN", "livello": 1, "sede": 0, "telefono": "346 137 5975", "instagram": "@CLAUDIA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9c"}},
|
||||
{"nome": "MATHEUS", "cognome": "ANDRADE", "livello": 2, "sede": 0, "telefono": "327 460 5204", "instagram": "@MATHEUS", "email": "matheusandrade64@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9d"}},
|
||||
{"nome": "NADIA", "cognome": "DELLA CHIARA", "livello": 2, "sede": 0, "telefono": "339 532 9718", "instagram": "@NADIA", "email": "feelosophymatera@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9e"}},
|
||||
{"nome": "CARMINE", "cognome": "DENTE", "livello": 2, "sede": 0, "telefono": "327 424 3327", "instagram": "@CARMINE", "email": "denteca@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2e9f"}},
|
||||
{"nome": "EMANUELE", "cognome": "DI PEDE", "livello": 2, "sede": 0, "telefono": "339 491 2760", "instagram": "@EMANUELE", "email": "emadip@inwind.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea0"}},
|
||||
{"nome": "ANITA", "cognome": "FERRORELLI", "livello": 2, "sede": 0, "telefono": "380 347 8179", "instagram": "@ANITA", "email": "ntfrrll@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea1"}},
|
||||
{"nome": "MICHELE", "cognome": "FORTE", "livello": 2, "sede": 0, "telefono": "368 374 7215", "instagram": "@MICHELE", "email": "fortemi@hotmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea2"}},
|
||||
{"nome": "MARIA CHIARA", "cognome": "GIORDANO", "livello": 2, "sede": 0, "telefono": "347 468 9673", "instagram": "@MARIA CHIARA", "email": "machigiordano@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea3"}},
|
||||
{"nome": "ANDREA", "cognome": "IACOVAZZI", "livello": 2, "sede": 0, "telefono": "329 392 1927", "instagram": "@ANDREA", "email": "andiacovazzi@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea4"}},
|
||||
{"nome": "ALESSIA", "cognome": "MARAGNO", "livello": 2, "sede": 0, "telefono": "329 169 9744", "instagram": "@ALESSIA", "email": "alessiamaragno@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea5"}},
|
||||
{"nome": "MARINA", "cognome": "MARCANGELO", "livello": 2, "sede": 0, "telefono": "339 143 7405", "instagram": "@MARINA", "email": "marinamarcang@tiscali.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea6"}},
|
||||
{"nome": "LUCIANA", "cognome": "MONTEMURRO", "livello": 2, "sede": 0, "telefono": "331 770 6338", "instagram": "@LUCIANA", "email": "montemurroluciana72@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea7"}},
|
||||
{"nome": "DEBORA", "cognome": "PEPE", "livello": 2, "sede": 0, "telefono": "328 861 0876", "instagram": "@DEBORA", "email": "debora.pepe24@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea8"}},
|
||||
{"nome": "MILENA", "cognome": "PISCIOTTA", "livello": 2, "sede": 0, "telefono": "328 094 3505", "instagram": "@MILENA", "email": "milenagne@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ea9"}},
|
||||
{"nome": "BIBIAN", "cognome": "PONTICELLI", "livello": 2, "sede": 0, "telefono": "329 435 3311", "instagram": "@BIBIAN", "email": "b.ponticelli@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eaa"}},
|
||||
{"nome": "VITTORIO DANIELE", "cognome": "QUERCIA", "livello": 2, "sede": 0, "telefono": "375 541 0267", "instagram": "@VITTORIO DANIELE", "email": "danioak@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eab"}},
|
||||
{"nome": "ANNALISA", "cognome": "SCALCIONE", "livello": 2, "sede": 0, "telefono": "SCALCIONE", "instagram": "@ANNALISA", "email": "cindarellservice@libero.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eac"}},
|
||||
{"nome": "LUCIANO", "cognome": "TAMBORRINO", "livello": 2, "sede": 0, "telefono": "393 625 9236", "instagram": "@LUCIANO", "email": "lucianot74@hotmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ead"}},
|
||||
{"nome": "PAOLA", "cognome": "TOMA", "livello": 2, "sede": 0, "telefono": "", "instagram": "@PAOLA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eae"}},
|
||||
{"nome": "PAOLO", "cognome": "AGRUSTI", "livello": 2, "sede": 0, "telefono": "388 814 9897", "instagram": "@PAOLO", "email": "agrusti@hotmail.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eaf"}},
|
||||
{"nome": "LUCIA", "cognome": "CALIA", "livello": 2, "sede": 0, "telefono": "329 618 7445", "instagram": "@LUCIA", "email": "luciacalia378@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb0"}},
|
||||
{"nome": "FLORA", "cognome": "D'ANTONA", "livello": 2, "sede": 0, "telefono": "320 020 5094", "instagram": "@FLORA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb1"}},
|
||||
{"nome": "ANNA", "cognome": "DEZIO", "livello": 2, "sede": 0, "telefono": "349 431 6974", "instagram": "@ANNA", "email": "rest.annadezio@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb2"}},
|
||||
{"nome": "GIOVANNI", "cognome": "DILEO", "livello": 2, "sede": 0, "telefono": "", "instagram": "@GIOVANNI", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb3"}},
|
||||
{"nome": "PASQUALE", "cognome": "FIORE", "livello": 2, "sede": 0, "telefono": "328 666 4022", "instagram": "@PASQUALE", "email": "fiorepaky@hotmail.it", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb4"}},
|
||||
{"nome": "CARMELA", "cognome": "GUANTI", "livello": 2, "sede": 0, "telefono": "351 590 4222", "instagram": "@CARMELA", "email": "cagem2013@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb5"}},
|
||||
{"nome": "OUSMAN", "cognome": "JARJU", "livello": 2, "sede": 0, "telefono": "379 148 9396", "instagram": "@OUSMAN", "email": "ousmanjarju30@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb6"}},
|
||||
{"nome": "EGIDIO", "cognome": "LACANNA", "livello": 2, "sede": 0, "telefono": "", "instagram": "@EGIDIO", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb7"}},
|
||||
{"nome": "ROSA", "cognome": "LAGONIGRO", "livello": 2, "sede": 0, "telefono": "", "instagram": "@ROSA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb8"}},
|
||||
{"nome": "MARZIA", "cognome": "LIONETTI", "livello": 2, "sede": 0, "telefono": "", "instagram": "@MARZIA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eb9"}},
|
||||
{"nome": "MARIKA", "cognome": "MONESE", "livello": 2, "sede": 0, "telefono": "366-2872715", "instagram": "@MARIKA", "email": "marikamonese@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2eba"}},
|
||||
{"nome": "ANGELICA", "cognome": "NANNAVECCHIA", "livello": 2, "sede": 0, "telefono": "", "instagram": "@ANGELICA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ebb"}},
|
||||
{"nome": "VITALBA", "cognome": "NICOLETTI", "livello": 2, "sede": 0, "telefono": "328 974 0125", "instagram": "@VITALBA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ebc"}},
|
||||
{"nome": "ALEXANDRA", "cognome": "NORRIS", "livello": 2, "sede": 0, "telefono": "371 692 8355", "instagram": "@ALEXANDRA", "email": "allyenorris@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ebd"}},
|
||||
{"nome": "MATTIA", "cognome": "OLIVETO", "livello": 2, "sede": 0, "telefono": "347 483 9344", "instagram": "@MATTIA", "email": "cesc.mattia@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ebe"}},
|
||||
{"nome": "ALESSANDRO", "cognome": "QUERCIA", "livello": 2, "sede": 0, "telefono": "339 537 6867", "instagram": "@ALESSANDRO", "email": "querciaalessandro813@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ebf"}},
|
||||
{"nome": "MARISA", "cognome": "RONDINONE", "livello": 2, "sede": 0, "telefono": "327 989 5992", "instagram": "@MARISA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec0"}},
|
||||
{"nome": "JOSEPH", "cognome": "SALZBERG", "livello": 2, "sede": 0, "telefono": "", "instagram": "@JOSEPH", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec1"}},
|
||||
{"nome": "IMMA", "cognome": "TRALLI", "livello": 2, "sede": 0, "telefono": "328 164 0272", "instagram": "@IMMA", "email": "tralli.imma@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec2"}},
|
||||
{"nome": "SILVIA", "cognome": "VIZZIELLO", "livello": 2, "sede": 0, "telefono": "327 216 8317", "instagram": "@SILVIA", "email": "silviavizziello2002@gmail.com", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec3"}},
|
||||
{"nome": "LORENA", "cognome": "", "livello": 2, "sede": 0, "telefono": "", "instagram": "@LORENA", "email": "", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec4"}},
|
||||
{"nome": "VASILKI", "cognome": "", "livello": 2, "sede": 0, "telefono": "30694 846 7844", "instagram": "@VASILKI", "email": "vaswluz@outlook.com.gr", "pagamenti": [], "presenze": [], "_id": {"$oid": "6507909f82043fdf3bdb2ec5"}},
|
||||
{"nome": "v bnc", "cognome": "bbcn ", "telefono": "n dn", "email": "", "sede": 0, "livello": 1, "pagamenti": [], "presenze": [], "_id": {"$oid": "650897787c2e6b1bede4da70"}},
|
||||
{"nome": "v bnc", "cognome": "bbcn ", "telefono": "n dn", "email": "", "sede": 0, "livello": 1, "pagamenti": [], "presenze": [], "_id": {"$oid": "6508977f7c2e6b1bede4da72"}}
|
||||
]
|
||||
@@ -1,4 +1,4 @@
|
||||
from nicegui import ui
|
||||
from nicegui import ui, app
|
||||
from datetime import datetime, timedelta
|
||||
from montydb import MontyClient
|
||||
from montydb.types.objectid import ObjectId
|
||||
@@ -9,7 +9,7 @@ import os
|
||||
|
||||
from fastapi.responses import RedirectResponse
|
||||
|
||||
|
||||
passwords = {'admin': [0,'sw1ng3rs',0, "Matteo Benedetto"], 'user': [1,'pass',1, "Pippo"]}
|
||||
# Set the locale to Italian
|
||||
locale.setlocale(locale.LC_ALL, 'it_IT.utf8')
|
||||
|
||||
@@ -23,25 +23,141 @@ conn = MontyClient("db")
|
||||
|
||||
# Access your database and collection
|
||||
db = conn.letsswing
|
||||
collection = db.users
|
||||
|
||||
|
||||
# Routes
|
||||
@ui.page('/', title="Let's Swing Admin",favicon="assets/favicon.ico")
|
||||
@ui.page('/manager/{sede}/{livello}', title="Let's Swing Admin", favicon="assets/favicon.ico")
|
||||
def manager_page(sede:int, livello:int) -> None:
|
||||
#styling
|
||||
ui.colors(primary='black', secondary="lightgray")
|
||||
ui.query('body').style(f'font-family: sans-serif')
|
||||
#############
|
||||
manage = manager.Manager()
|
||||
manage.main(db, sede, livello)
|
||||
|
||||
# Routes
|
||||
@ui.page('/', title="Let's Swing Admin", favicon="assets/favicon.ico")
|
||||
def index_page() -> None:
|
||||
|
||||
## LOGIN CHECK
|
||||
if not app.storage.user.get('authenticated', False):
|
||||
return RedirectResponse('/login')
|
||||
#styling
|
||||
ui.colors(primary='black', secondary="lightgray")
|
||||
ui.query('body').style(f'font-family: sans-serif')
|
||||
#############
|
||||
|
||||
manager.main(collection)
|
||||
def choose(sede, livello):
|
||||
if int(livello) < 0:
|
||||
page.refresh(sede)
|
||||
else:
|
||||
ui.open(f"/manager/{sede}/{livello}")
|
||||
@ui.refreshable
|
||||
def page(sede):
|
||||
if int(sede) <0:
|
||||
results = db.sedi.find()
|
||||
ui.button(on_click=lambda: (app.storage.user.clear(), ui.open('/login')), icon='logout').props('outline round')
|
||||
ui.row().classes("w-full")
|
||||
with ui.column().classes("w-full h-screen place-items-center items-center").style(""):
|
||||
ui.row().classes("grow")
|
||||
for result in results:
|
||||
ui.button(text=str(result['nome']).capitalize(),on_click=lambda id=result['id']:choose(id, -1))
|
||||
ui.row().classes("grow")
|
||||
else:
|
||||
results = db.livelli.find()
|
||||
|
||||
@ui.page('/user/{userid}', title="Let's Swing Admin",favicon="assets/favicon.ico")
|
||||
with ui.row().classes("w-full"):
|
||||
ui.icon("chevron_left", size="lg").on("click", lambda: page.refresh(-1))
|
||||
with ui.column().classes("w-full h-screen place-items-center items-center"):
|
||||
ui.row().classes("grow")
|
||||
for result in results:
|
||||
ui.button(text=str(result['nome']).capitalize(),on_click=lambda id=result['id']:choose(sede, id))
|
||||
ui.row().classes("grow")
|
||||
|
||||
## FRONTEND
|
||||
page(-1)
|
||||
|
||||
|
||||
@ui.page('/user/{userid}', title="Let's Swing Admin", favicon="assets/favicon.ico")
|
||||
def user_page(userid: str) -> None:
|
||||
|
||||
## LOGIN CHECK
|
||||
if not app.storage.user.get('authenticated', False):
|
||||
return RedirectResponse('/login')
|
||||
#styling
|
||||
ui.colors(primary='black', secondary="lightgray")
|
||||
ui.query('body').style(f'font-family: sans-serif')
|
||||
#############
|
||||
user.main(userid, collection)
|
||||
|
||||
user.main(userid, db)
|
||||
|
||||
@ui.page('/edit/{userid}/{sede}/{livello}', title="Let's Swing Admin", favicon="assets/favicon.ico")
|
||||
def edit_page(userid: str, sede: int, livello: int) -> None:
|
||||
|
||||
## LOGIN CHECK
|
||||
if not app.storage.user.get('authenticated', False):
|
||||
return RedirectResponse('/login')
|
||||
#styling
|
||||
ui.colors(primary='black', secondary="lightgray")
|
||||
ui.query('body').style(f'font-family: sans-serif')
|
||||
#############
|
||||
if userid!= "new":
|
||||
result = db.users.find_one({"_id":ObjectId(userid)})
|
||||
|
||||
|
||||
async def save():
|
||||
data_submit = {k: v.value for k, v in data.items()}
|
||||
if userid == "new":
|
||||
data_submit['pagamenti']=[]
|
||||
data_submit['presenze']=[]
|
||||
db.users.insert_one(data_submit)
|
||||
else:
|
||||
print(data_submit)
|
||||
db.users.update_one(
|
||||
{"_id": ObjectId(userid)},
|
||||
{"$set": data_submit}
|
||||
)
|
||||
os.kill(os.getpid(), signal.SIGUSR1)
|
||||
await ui.run_javascript('history.back()', respond=False)
|
||||
|
||||
ui.icon("chevron_left", size="lg").on("click", lambda: ui.run_javascript('history.back()', respond=False))
|
||||
with ui.column().classes("w-full h-screen place-items-center items-center").style(""):
|
||||
data = {}
|
||||
ui.row().classes("grow")
|
||||
data['nome'] = ui.input(value=str(result['nome']).capitalize() if userid != "new" else None, placeholder="Nome").props('outline').classes('w-full')
|
||||
data['cognome'] = ui.input(value=str(result['cognome']).capitalize() if userid != "new" else None, placeholder="Cognome").props('outline').classes('w-full')
|
||||
data['telefono'] = ui.input(value=str(result['telefono']).capitalize() if userid != "new" else None, placeholder="Telefono").props('outline').classes('w-full')
|
||||
data['email'] = ui.input(value=str(result['email']).capitalize() if userid != "new" else None, placeholder="email").props('outline').classes('w-full')
|
||||
options = {o['id']: str(o['nome']).capitalize() for o in db.sedi.find()}
|
||||
data['sede'] = ui.select(options, value=result['sede'] if userid != "new" else sede).props('outline').classes('w-full')
|
||||
options = {o['id']: str(o['nome']).capitalize() for o in db.livelli.find()}
|
||||
data['livello'] = ui.select(options, value=result['livello'] if userid != "new" else livello).props('outline').classes('w-full')
|
||||
ui.button(text="Salva", on_click=save)
|
||||
ui.row().classes("grow")
|
||||
|
||||
@ui.page('/login',title="Let's Swing Admin", favicon="assets/favicon.ico")
|
||||
def login() -> None:
|
||||
|
||||
#styling
|
||||
ui.colors(primary='black', secondary="lightgray")
|
||||
ui.query('body').style(f'font-family: sans-serif;background-color:black')
|
||||
#############
|
||||
|
||||
def try_login() -> None: # local function to avoid passing username and password as arguments
|
||||
if passwords.get(username.value)[1] == password.value:
|
||||
app.storage.user.update({'username': username.value, 'authenticated': True, 'id' : passwords.get(username.value)[0], "level": passwords.get(username.value)[2], "name": passwords.get(username.value)[3]})
|
||||
ui.open('/')
|
||||
else:
|
||||
ui.notify('username o password errata', color='negative')
|
||||
|
||||
if app.storage.user.get('authenticated', False):
|
||||
return RedirectResponse('/')
|
||||
with ui.card().classes('absolute-center items-center'):
|
||||
ui.image('assets/logo.svg')
|
||||
ui.label('Let\'s Swing Admin').classes('text-2xl')
|
||||
username = ui.input('Username').on('keydown.enter', try_login).classes('w-full')
|
||||
password = ui.input('Password', password=True, password_toggle_button=True).on('keydown.enter', try_login)
|
||||
ui.button('Log in', on_click=try_login)
|
||||
|
||||
|
||||
# Run main loop
|
||||
ui.run(host="0.0.0.0")
|
||||
ui.run(host="0.0.0.0", storage_secret='THIS_NEEDS_TO_BE_CHANGED')
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+93
-75
@@ -2,88 +2,106 @@ from nicegui import ui
|
||||
import signal
|
||||
import os
|
||||
from datetime import datetime, timedelta
|
||||
from montydb.database import MontyDatabase
|
||||
|
||||
class Manager:
|
||||
def __init__(self):
|
||||
self.current_time = datetime.now()
|
||||
self.current_index = 0
|
||||
|
||||
current_time = datetime.now()
|
||||
def main(self, db: MontyDatabase, sede, livello):
|
||||
|
||||
def main(collection):
|
||||
|
||||
def registra_presenza(id, flag):
|
||||
current_day = current_time.replace(hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
users = db.users
|
||||
lezioni = db.lezioni
|
||||
lezioniCursore = lezioni.find({"livello": livello,"sede": sede}).sort([("data", 1)])
|
||||
lezioniArray = [datetime.strptime(l["data"],"%Y-%m-%d %H:%M:%S") for l in lezioniCursore]
|
||||
|
||||
if flag:
|
||||
collection.update_one(
|
||||
{"_id": id},
|
||||
{"$push": {"presenze": current_day}}
|
||||
)
|
||||
else:
|
||||
collection.update_one(
|
||||
{"_id": id},
|
||||
{"$pull": {"presenze": current_day}}
|
||||
)
|
||||
os.kill(os.getpid(), signal.SIGUSR1)
|
||||
|
||||
for i, l in enumerate(lezioniArray):
|
||||
if l > self.current_time:
|
||||
self.current_index = i
|
||||
self.current_time = l
|
||||
break
|
||||
|
||||
|
||||
def registra_presenza(id, flag):
|
||||
current_day = self.current_time.replace(hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
@ui.refreshable
|
||||
def time_selector():
|
||||
def set_time(flag):
|
||||
# Specify that we want to use the global variable
|
||||
global current_time
|
||||
if flag:
|
||||
current_time += timedelta(hours=24)
|
||||
users.update_one(
|
||||
{"_id": id},
|
||||
{"$push": {"presenze": current_day}}
|
||||
)
|
||||
else:
|
||||
# Subtract 24 hours
|
||||
current_time -= timedelta(hours=24)
|
||||
time_selector.refresh()
|
||||
users.update_one(
|
||||
{"_id": id},
|
||||
{"$pull": {"presenze": current_day}}
|
||||
)
|
||||
os.kill(os.getpid(), signal.SIGUSR1)
|
||||
|
||||
|
||||
@ui.refreshable
|
||||
def time_selector():
|
||||
def set_time(isNext):
|
||||
if isNext:
|
||||
self.current_index += 1
|
||||
else:
|
||||
self.current_index -= 1
|
||||
|
||||
self.current_time = lezioniArray[self.current_index]
|
||||
|
||||
time_selector.refresh()
|
||||
tabellaUtenti.refresh()
|
||||
|
||||
with ui.row().classes("w-full items-center"):
|
||||
ui.column().classes("grow")
|
||||
with ui.column():
|
||||
if self.current_index > 0:
|
||||
ui.icon("arrow_left",size="md").on("click", lambda: set_time(False))
|
||||
date_label = self.current_time.strftime('%d %B, %Y')
|
||||
ui.label(date_label).style("margin:auto auto;font-weight:600").classes('text-md')
|
||||
with ui.column():
|
||||
if self.current_index +1 in range(0,len(lezioniArray)):
|
||||
ui.icon("arrow_right",size="md").on("click", lambda: set_time(True))
|
||||
ui.column().classes("grow")
|
||||
|
||||
@ui.refreshable
|
||||
def tabellaUtenti():
|
||||
rows = users.find({"sede": sede, "livello": livello})
|
||||
current_day = self.current_time.replace(hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
current_month = self.current_time.replace(day=1, hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
for row in rows:
|
||||
with ui.row().classes("w-full"):
|
||||
with ui.column().classes("grow"):
|
||||
|
||||
ui.label(f"{row['nome']} {row['cognome'][0].upper() if row['cognome'] else None}.").style('color:'+(
|
||||
"red" if not current_month in row['pagamenti'] and current_day in row['presenze'] else "black")
|
||||
).classes('text-md').on("click", lambda row_id=row['_id']: ui.open(f'/user/{row_id}'))
|
||||
with ui.column():
|
||||
|
||||
if current_day in row["presenze"]:
|
||||
ui.button(color="primary", text= "presente", on_click= lambda row_id=row['_id']: registra_presenza(row_id, False))
|
||||
else:
|
||||
ui.button(color="secondary", text= "assente", on_click= lambda row_id=row['_id']: registra_presenza(row_id, True)).style("min-width:100px")
|
||||
|
||||
ui.separator()
|
||||
|
||||
def onSignal(signum, frame):
|
||||
print("Signal")
|
||||
tabellaUtenti.refresh()
|
||||
|
||||
|
||||
with ui.row().classes("w-full items-center"):
|
||||
ui.column().classes("grow")
|
||||
signal.signal(signal.SIGUSR1, onSignal)
|
||||
liv = db.livelli.find_one({"id":livello})
|
||||
sed = db.sedi.find_one({"id":sede})
|
||||
## FRONTEND
|
||||
with ui.row().classes("w-full"):
|
||||
ui.icon("chevron_left", size="lg").on("click", lambda: ui.open("/"))
|
||||
with ui.row().classes("w-full"):
|
||||
with ui.column().classes("grow"):
|
||||
ui.label(f"{str(liv['nome']).capitalize()} a {str(sed['nome']).capitalize()}").classes('text-xl').style("font-weight:700;margin-top: 10px")
|
||||
with ui.column():
|
||||
ui.icon("arrow_left",size="md").on("click", lambda: set_time(False))
|
||||
date_label = current_time.strftime('%d %B, %Y')
|
||||
ui.label(date_label).style("margin:auto auto;font-weight:600").classes('text-md')
|
||||
with ui.column():
|
||||
ui.icon("arrow_right",size="md").on("click", lambda: set_time(True))
|
||||
ui.column().classes("grow")
|
||||
|
||||
@ui.refreshable
|
||||
def tabellaUtenti():
|
||||
rows = collection.find({"sede": 1})
|
||||
current_day = current_time.replace(hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
current_month = current_time.replace(day=1, hour=0, minute=0, second=0, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||||
for row in rows:
|
||||
with ui.row().classes("w-full"):
|
||||
with ui.column().classes("grow"):
|
||||
|
||||
ui.label(f"{row['nome']} {row['cognome'][0].upper()}.").style('color:'+(
|
||||
"red" if not current_month in row['pagamenti'] and current_day in row['presenze'] else "black")
|
||||
).classes('text-md').on("click", lambda row_id=row['_id']: ui.open(f'user/{row_id}'))
|
||||
with ui.column():
|
||||
|
||||
if current_day in row["presenze"]:
|
||||
ui.button(color="primary", text= "presente", on_click= lambda row_id=row['_id']: registra_presenza(row_id, False))
|
||||
else:
|
||||
ui.button(color="secondary", text= "assente", on_click= lambda row_id=row['_id']: registra_presenza(row_id, True)).style("min-width:100px")
|
||||
|
||||
ui.separator()
|
||||
|
||||
def onSignal(signum, frame):
|
||||
#ui.notify("signal")
|
||||
tabellaUtenti.refresh()
|
||||
|
||||
signal.signal(signal.SIGUSR1, onSignal)
|
||||
|
||||
|
||||
## FRONTEND
|
||||
ui.row().classes("w-full")
|
||||
with ui.row().classes("w-full"):
|
||||
with ui.column().classes("grow"):
|
||||
ui.label("Beginner a Matera").classes('text-xl').style("font-weight:700;margin-top: 10px")
|
||||
with ui.column():
|
||||
ui.image('assets/logo.svg').style('width:70px;margin:auto auto')
|
||||
time_selector()
|
||||
tabellaUtenti()
|
||||
with ui.row().classes("w-full items-center content-center"):
|
||||
ui.button("AGGIUNGI ALLIEV*", icon="add").props('outline rounded').classes('shadow-lg').style("margin:auto;padding:10px 20px;font-weight:600")
|
||||
ui.image('assets/logo.svg').style('width:70px;margin:auto auto')
|
||||
time_selector()
|
||||
tabellaUtenti()
|
||||
with ui.row().classes("w-full items-center content-center"):
|
||||
ui.button("AGGIUNGI ALLIEV*", icon="add", on_click=lambda: ui.open(f"/edit/new/{sede}/{livello}")).props('outline rounded').classes('shadow-lg').style("margin:auto;padding:10px 20px;font-weight:600")
|
||||
|
||||
+37
-14
@@ -4,7 +4,17 @@ import os
|
||||
from datetime import datetime, timedelta
|
||||
from montydb.types.objectid import ObjectId
|
||||
|
||||
def main(userid, collection):
|
||||
from fastapi.responses import RedirectResponse
|
||||
|
||||
def main(userid, db):
|
||||
collection = db.users
|
||||
|
||||
async def delete_user():
|
||||
result = await dialog
|
||||
if result:
|
||||
db.users.delete_one({"_id":ObjectId(userid)})
|
||||
os.kill(os.getpid(), signal.SIGUSR1)
|
||||
await ui.run_javascript('history.back()', respond=False)
|
||||
|
||||
def register_payment(month, flag):
|
||||
if flag:
|
||||
@@ -13,7 +23,7 @@ def main(userid, collection):
|
||||
{"$push": {"pagamenti": month.strftime('%Y-%m-%d %H:%M:%S')}}
|
||||
)
|
||||
else:
|
||||
collection.update_one(
|
||||
collection.find_one_and_update(
|
||||
{"_id": ObjectId(userid)},
|
||||
{"$pull": {"pagamenti": month.strftime('%Y-%m-%d %H:%M:%S')}}
|
||||
)
|
||||
@@ -21,16 +31,15 @@ def main(userid, collection):
|
||||
page.refresh()
|
||||
|
||||
def onSignal(signum, frame):
|
||||
ui.notify("signal")
|
||||
page.refresh()
|
||||
|
||||
signal.signal(signal.SIGUSR1, onSignal)
|
||||
|
||||
# Calculate last October date
|
||||
october_date = datetime(datetime.now().year - (datetime.now().month < 10), 10, 1)
|
||||
# Calculate last start date
|
||||
start_date = datetime(datetime.now().year - (datetime.now().month < 8), 9, 1)
|
||||
|
||||
# Create a list for the next 12 months
|
||||
next_12_months = [(october_date + timedelta(days=i*32)).replace(day=1) for i in range(10)]
|
||||
next_12_months = [(start_date + timedelta(days=i*32)).replace(day=1) for i in range(10)]
|
||||
|
||||
@ui.refreshable
|
||||
def page():
|
||||
@@ -39,14 +48,19 @@ def main(userid, collection):
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return RedirectResponse('/')
|
||||
title.set_text(f'{result["nome"]} {result["cognome"][0].upper()}.')
|
||||
title.set_text(f'{result["nome"]} {result["cognome"][0].upper() if result["cognome"] else None}.')
|
||||
with ui.grid(columns=1):
|
||||
ui.label("Informazioni").classes('text-lg').style("font-weight:700")
|
||||
with ui.row():
|
||||
ui.label("Informazioni").classes('text-lg').style("font-weight:700")
|
||||
ui.icon("edit", size="sm").on("click", lambda: ui.open(f'/edit/{userid}/0/0'))
|
||||
ui.icon("delete", size="sm").on("click", delete_user)
|
||||
ui.label(f'{result["nome"]}').classes('text-lg')
|
||||
ui.label(f'{result["cognome"]}').classes('text-lg')
|
||||
ui.label(f'{result["telefono"]}').classes('text-lg')
|
||||
ui.label(f'{result["instagram"]}').classes('text-lg')
|
||||
ui.label(f'{result["sede"]}').classes('text-lg')
|
||||
if 'instagram' in result:
|
||||
ui.label(f'{result["instagram"]}').classes('text-lg')
|
||||
ui.label(f'{str(db.sedi.find_one({"id":result["sede"]})["nome"]).capitalize()}').classes('text-lg')
|
||||
ui.label(f'{str(db.livelli.find_one({"id":result["livello"]})["nome"]).capitalize()}').classes('text-lg')
|
||||
with ui.grid(columns=2).classes("w-full items-center"):
|
||||
ui.label("Mese").classes('text-lg').style("font-weight:700")
|
||||
with ui.grid(columns=2).style("text-align:center").classes("place-items-center"):
|
||||
@@ -57,20 +71,29 @@ def main(userid, collection):
|
||||
presenze = [datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S') for timestamp in result['presenze']]
|
||||
start, end = month.replace(day=1), (month + timedelta(days=32)).replace(day=1) - timedelta(seconds=1)
|
||||
timestamp_in_month = any(start <= timestamp <= end for timestamp in presenze)
|
||||
print(timestamp_in_month)
|
||||
|
||||
|
||||
ui.label(month.strftime("%B").capitalize()).classes('text-lg')
|
||||
with ui.grid(columns=2).style("text-align:center").classes("place-items-center"):
|
||||
ui.icon("done").classes('text-lg') if timestamp_in_month else ui.icon("warning", color="negative").classes('text-lg')
|
||||
ui.icon("done").classes('text-lg') if timestamp_in_month else ui.label(" ")
|
||||
if month.strftime('%Y-%m-%d %H:%M:%S') in result["pagamenti"]:
|
||||
ui.button(color="primary", text= "PAGATO", on_click= lambda dt=month: register_payment(dt, False)).style('font-size:0.5rem;font-weight:700')
|
||||
else:
|
||||
if timestamp_in_month:
|
||||
ui.button(color="negative", text= "NON PAGATO", on_click= lambda dt=month: register_payment(dt, True)).style('font-size:0.4rem;font-weight:700;white-space: nowrap;')
|
||||
else:
|
||||
ui.button(color="secondary", text= "PAGA", on_click= lambda dt=month: register_payment(dt, True)).style('font-size:0.5rem;font-weight:700')
|
||||
ui.button(text= "PAGA", on_click= lambda dt=month: register_payment(dt, True)).style('font-size:0.5rem;font-weight:700;').props('outline')
|
||||
## FRONTEND
|
||||
ui.row().classes("w-full")
|
||||
|
||||
with ui.dialog() as dialog, ui.card():
|
||||
ui.label('Sicuro di voler cancellare l\'utente?')
|
||||
with ui.row().classes("w-full"):
|
||||
ui.column().classes("grow")
|
||||
ui.button('Sì', on_click=lambda: dialog.submit(True))
|
||||
ui.button('No', on_click=lambda: dialog.submit(False))
|
||||
ui.column().classes("grow")
|
||||
with ui.row().classes("w-full"):
|
||||
ui.icon("chevron_left", size="lg").on("click", lambda: ui.run_javascript('history.back()', respond=False))
|
||||
with ui.row().classes("w-full"):
|
||||
with ui.column().classes("grow"):
|
||||
title = ui.label().classes('text-xl').style("font-weight:700;margin-top: 10px")
|
||||
|
||||
+43
-7
@@ -1,18 +1,54 @@
|
||||
from montydb import MontyClient
|
||||
from datetime import datetime, timedelta
|
||||
import json
|
||||
|
||||
# Create a connection
|
||||
conn = MontyClient("db")
|
||||
|
||||
# Access your database and collection
|
||||
db = conn.letsswing
|
||||
collection = db.users
|
||||
collection = db.livelli
|
||||
|
||||
# Insert a document with a nested structure
|
||||
collection.insert_one({'nome': 'Jim', 'cognome': 'Doe', 'livello': 1,
|
||||
'sede': 1, 'telefono': '1234567890', 'instagram': '@johndoe',
|
||||
'pagamenti': [], 'presenze': []})
|
||||
|
||||
results = collection.find({"sede": 1})
|
||||
# jsonfile = open('file.json', 'r')
|
||||
|
||||
for result in results:
|
||||
print(result)
|
||||
# for row in jsonfile:
|
||||
# print(row)
|
||||
collection.insert_one({"id":"3","nome":"Advanced"})
|
||||
collection.insert_one({"id":"2","nome":"Improver"})
|
||||
collection.insert_one({"id":"1","nome":"Beginners"})
|
||||
|
||||
|
||||
# collection = db.lezioni
|
||||
|
||||
# # collection.insert_one({'})
|
||||
|
||||
|
||||
# # Start from a known Monday.
|
||||
# start_date = datetime(2023,10,1)
|
||||
|
||||
# while start_date.weekday() != 0: # 0 represents Monday in weekday()
|
||||
# start_date -= timedelta(days=1)
|
||||
|
||||
|
||||
# for i in range(36): # We need 10 weeks to get 20 days (2 days per week)
|
||||
# monday = start_date + timedelta(weeks=i)
|
||||
# wednesday1 = monday + timedelta(days=2) # Wednesday is two days after Monday
|
||||
# monday = monday.replace(hour=19, minute=30)
|
||||
# wednesday1= wednesday1.replace(hour=19, minute=30)
|
||||
# wednesday2 = wednesday1
|
||||
# wednesday2 = wednesday2.replace(hour=20, minute=30)
|
||||
|
||||
# collection.insert_one({"sede": 1, "livello":0, "data":monday.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
# collection.insert_one({"sede": 0, "livello":0, "data":wednesday1.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
# collection.insert_one({"sede": 0, "livello":1, "data":wednesday2.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# # results = collection.find({"sede": 1})
|
||||
|
||||
# # for result in results:
|
||||
# # print(result)
|
||||
|
||||
Reference in New Issue
Block a user