365 lines
5.3 KiB
INI
365 lines
5.3 KiB
INI
```python
|
|
# Let's create the requested INI file layout based on the rules and the provided image.
|
|
# Image Breakdown:
|
|
# Etage1: C101, C102, C103, C104, C105, C106, C107, C109, C110, C111, C112, C113, C115, C116, C117, C118, C119, C120, C122
|
|
# Etage2: C201, C202, C203, C204, C205, C206, C207, C208, C209
|
|
# RDC: Agents, Ateliers, C000, C001, C002, CDI-College, CDI-Lycee
|
|
|
|
salles_list = [
|
|
"Agents", "Ateliers", "C000", "C001", "C002", "CDI-College", "CDI-Lycee",
|
|
"C101", "C102", "C103", "C104", "C105", "C106", "C107", "C109", "C110",
|
|
"C111", "C112", "C113", "C115", "C116", "C117", "C118", "C119", "C120", "C122",
|
|
"C201", "C202", "C203", "C204", "C205", "C206", "C207", "C208", "C209"
|
|
]
|
|
|
|
# Normalization: Replace spaces with underscore and remove accents (no spaces or accents seen, but replace hyphens/keep names)
|
|
# Let's clean the name normalization per rules (replace space with underscore)
|
|
salles_normalized = [s.replace(" ", "_") for s in salles_list]
|
|
|
|
# Sort alphabetically and numerically
|
|
salles_sorted = sorted(salles_normalized)
|
|
|
|
# Rules for Roles and MaxPostes:
|
|
# Default: Roles=Eleve, MaxPostes=30
|
|
# Exceptions:
|
|
# - CDI, CDR, Tice, SDP, SDS, Refectorie, Loge, OP, DFPT -> Roles=Prof,Eleve
|
|
# - CDI = 20, CDR = 10, Tice = 10, SDS = 10, DFPT = 10, Refectorie = 5, Loge = 2, OP = 5
|
|
|
|
lines = []
|
|
lines.append("[Default]")
|
|
lines.append(f"Salles={','.join(salles_sorted)}")
|
|
lines.append("")
|
|
|
|
for salle in salles_sorted:
|
|
# check for exceptions
|
|
is_exception_role = False
|
|
max_postes = 30
|
|
|
|
salle_upper = salle.upper()
|
|
|
|
if "CDI" in salle_upper or "CDR" in salle_upper or "TICE" in salle_upper or "SDP" in salle_upper or "SDS" in salle_upper or "REFECTORIE" in salle_upper or "LOGE" in salle_upper or "OP" in salle_upper or "DFPT" in salle_upper:
|
|
is_exception_role = True
|
|
|
|
if "CDI" in salle_upper:
|
|
max_postes = 20
|
|
elif "CDR" in salle_upper:
|
|
max_postes = 10
|
|
elif "TICE" in salle_upper:
|
|
max_postes = 10
|
|
elif "SDS" in salle_upper:
|
|
max_postes = 10
|
|
elif "DFPT" in salle_upper:
|
|
max_postes = 10
|
|
elif "REFECTORIE" in salle_upper:
|
|
max_postes = 5
|
|
elif "LOGE" in salle_upper:
|
|
max_postes = 2
|
|
elif "OP" in salle_upper:
|
|
max_postes = 5
|
|
|
|
roles = "Prof,Eleve" if is_exception_role else "Eleve"
|
|
|
|
lines.append(f"[{salle}]")
|
|
lines.append(f"Roles={roles}")
|
|
lines.append(f"MaxPostes={max_postes}")
|
|
lines.append("")
|
|
|
|
ini_content = "\n".join(lines)
|
|
print(ini_content)
|
|
with open("salles.ini", "w") as f:
|
|
f.write(ini_content)
|
|
|
|
|
|
|
|
```
|
|
|
|
```text
|
|
[Default]
|
|
Salles=Agents,Ateliers,C000,C001,C002,C101,C102,C103,C104,C105,C106,C107,C109,C110,C111,C112,C113,C115,C116,C117,C118,C119,C120,C122,C201,C202,C203,C204,C205,C206,C207,C208,C209,CDI-College,CDI-Lycee
|
|
|
|
[Agents]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[Ateliers]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C000]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C001]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C002]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C101]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C102]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C103]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C104]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C105]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C106]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C107]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C109]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C110]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C111]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C112]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C113]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C115]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C116]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C117]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C118]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C119]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C120]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C122]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C201]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C202]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C203]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C204]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C205]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C206]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C207]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C208]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C209]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[CDI-College]
|
|
Roles=Prof,Eleve
|
|
MaxPostes=20
|
|
|
|
[CDI-Lycee]
|
|
Roles=Prof,Eleve
|
|
MaxPostes=20
|
|
|
|
|
|
|
|
```
|
|
|
|
[Default]
|
|
Salles=Agents,Ateliers,C000,C001,C002,C101,C102,C103,C104,C105,C106,C107,C109,C110,C111,C112,C113,C115,C116,C117,C118,C119,C120,C122,C201,C202,C203,C204,C205,C206,C207,C208,C209,CDI-College,CDI-Lycee
|
|
|
|
[Agents]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[Ateliers]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C000]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C001]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C002]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C101]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C102]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C103]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C104]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C105]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C106]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C107]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C109]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C110]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C111]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C112]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C113]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C115]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C116]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C117]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C118]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C119]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C120]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C122]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C201]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C202]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C203]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C204]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C205]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C206]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C207]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C208]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[C209]
|
|
Roles=Eleve
|
|
MaxPostes=30
|
|
|
|
[CDI-College]
|
|
Roles=Prof,Eleve
|
|
MaxPostes=20
|
|
|
|
[CDI-Lycee]
|
|
Roles=Prof,Eleve
|
|
MaxPostes=20 |