ositah 24.7.dev2__tar.gz → 24.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ositah might be problematic. Click here for more details.
- {ositah-24.7.dev2/ositah.egg-info → ositah-24.8}/PKG-INFO +1 -1
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/tables.py +3 -14
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/agents.py +6 -1
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/hito_db_model.py +8 -0
- {ositah-24.7.dev2 → ositah-24.8/ositah.egg-info}/PKG-INFO +1 -1
- {ositah-24.7.dev2 → ositah-24.8}/pyproject.toml +5 -8
- {ositah-24.7.dev2 → ositah-24.8}/.gitignore +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/.gitlab-ci.yml +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/LICENSE +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/README.md +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/docker/Dockerfile +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/docker/docker-compose.yml +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/docker/pyproject-poetry.toml +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/README.md +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/gunicorn.ositah +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/gunicorn@.service +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/ositah.conf.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/noxfile.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/__init__.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/app.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/__init__.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/analysis.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/__init__.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/callbacks.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/main.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/parameters.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/tools.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/export.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/__init__.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/callbacks.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/main.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/parameters.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/tools.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/arrow_down_up.svg +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/ositah.css +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sort_ascending.svg +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sort_descending.svg +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sorttable.js +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/main.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/ositah.example.cfg +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/static/style.css +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/base.html +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/bootstrap_login.html +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/login_form.html +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/__init__.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/authentication.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/cache.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/core.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/exceptions.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/hito_db.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/menus.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/period.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/projects.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/teams.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/utils.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/SOURCES.txt +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/dependency_links.txt +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/entry_points.txt +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/requires.txt +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/top_level.txt +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/setup.cfg +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/setup.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/README.md +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/accordion.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/authentication.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/checkbox.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/checklist.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/file-selector.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/file-upload.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/long_running_callback.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/pandas_split.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/pandas_split_bug_report.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/pattern-matching-callback.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/progess_bar.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/reset_table_checkboxes.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/sortable_table.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/sqlalchemy_test.py +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/templates/base.html +0 -0
- {ositah-24.7.dev2 → ositah-24.8}/test-dash/templates/login_form.html +0 -0
|
@@ -298,7 +298,7 @@ def build_validation_table(team, team_selection_date, declaration_set: int, peri
|
|
|
298
298
|
html.Em(
|
|
299
299
|
(
|
|
300
300
|
f"Temps déclarés de l'équipe / total ="
|
|
301
|
-
f" {round(selected_declarations['percent_global'].mean(),1)}%"
|
|
301
|
+
f" {round(selected_declarations['percent_global'].mean(), 1)}%"
|
|
302
302
|
f" (100%={SEMESTER_WEEKS} semaines)"
|
|
303
303
|
)
|
|
304
304
|
)
|
|
@@ -341,12 +341,7 @@ def build_missing_agents_table(team, team_selection_date, period_date: str):
|
|
|
341
341
|
title_class="text-danger",
|
|
342
342
|
)
|
|
343
343
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
if team == TEAM_LIST_ALL_AGENTS:
|
|
347
|
-
agent_list = agents
|
|
348
|
-
else:
|
|
349
|
-
agent_list = agents[agents.team.notna() & agents[column_names["team"]].str.match(team)]
|
|
344
|
+
agent_list = get_agents(period_date, team)
|
|
350
345
|
|
|
351
346
|
if declarations is None:
|
|
352
347
|
missing_agents = agent_list
|
|
@@ -459,13 +454,7 @@ def build_statistics_table(team, team_selection_date, period_date: str):
|
|
|
459
454
|
title_class="text-danger",
|
|
460
455
|
)
|
|
461
456
|
|
|
462
|
-
|
|
463
|
-
if team == TEAM_LIST_ALL_AGENTS:
|
|
464
|
-
agent_list = agents
|
|
465
|
-
# If the agent doesn't belong to a team, set team to an empty string rather than None
|
|
466
|
-
agent_list.loc[agent_list.team.isna(), "team"] = ""
|
|
467
|
-
else:
|
|
468
|
-
agent_list = agents[agents.team.notna() & agents[column_names["team"]].str.match(team)]
|
|
457
|
+
agent_list = get_agents(period_date, team)
|
|
469
458
|
|
|
470
459
|
add_no_team_row = False
|
|
471
460
|
if declarations is None:
|
|
@@ -64,7 +64,12 @@ def get_agents(period_date: str, team: str = None) -> pd.DataFrame:
|
|
|
64
64
|
# agent_list = agent_list.loc[(agent_list.archive == 0) |
|
|
65
65
|
# (agent_list.date_fin >= start_date.date().isoformat())]
|
|
66
66
|
if team and team != TEAM_LIST_ALL_AGENTS:
|
|
67
|
-
agent_list = agent_list[
|
|
67
|
+
agent_list = agent_list[
|
|
68
|
+
agent_list.team.notna() & agent_list[columns["team"]].str.match(team)
|
|
69
|
+
]
|
|
70
|
+
else:
|
|
71
|
+
# If the agent doesn't belong to a team, set team to an empty string rather than None
|
|
72
|
+
agent_list.loc[agent_list.team.isna(), "team"] = ""
|
|
68
73
|
agent_list[columns["fullname"]] = agent_list[
|
|
69
74
|
[columns["lastname"], columns["firstname"]]
|
|
70
75
|
].agg(" ".join, axis=1)
|
|
@@ -199,12 +199,16 @@ class ActiviteDetail(db.Model):
|
|
|
199
199
|
|
|
200
200
|
|
|
201
201
|
class OSITAHSession(db.Model):
|
|
202
|
+
__table_args__ = {"mysql_charset": "utf8mb4", "mysql_collate": "utf8mb4_unicode_ci"}
|
|
203
|
+
|
|
202
204
|
id = db.Column(db.String(36), primary_key=True)
|
|
203
205
|
email = db.Column(db.String(255), nullable=False)
|
|
204
206
|
last_use = db.Column(db.DateTime, nullable=False)
|
|
205
207
|
|
|
206
208
|
|
|
207
209
|
class OSITAHValidation(db.Model):
|
|
210
|
+
__table_args__ = {"mysql_charset": "utf8mb4", "mysql_collate": "utf8mb4_unicode_ci"}
|
|
211
|
+
|
|
208
212
|
id = db.Column(db.String(36), primary_key=True, default=new_uuid)
|
|
209
213
|
validated = db.Column(db.Boolean, nullable=False)
|
|
210
214
|
timestamp = db.Column(db.DateTime, nullable=False)
|
|
@@ -221,6 +225,8 @@ class OSITAHValidation(db.Model):
|
|
|
221
225
|
|
|
222
226
|
|
|
223
227
|
class OSITAHValidationPeriod(db.Model):
|
|
228
|
+
__table_args__ = {"mysql_charset": "utf8mb4", "mysql_collate": "utf8mb4_unicode_ci"}
|
|
229
|
+
|
|
224
230
|
id = db.Column(db.String(36), primary_key=True, default=new_uuid)
|
|
225
231
|
name = db.Column(db.String(255), unique=True, nullable=False)
|
|
226
232
|
start_date = db.Column(db.DateTime, nullable=False)
|
|
@@ -229,6 +235,8 @@ class OSITAHValidationPeriod(db.Model):
|
|
|
229
235
|
|
|
230
236
|
|
|
231
237
|
class OSITAHProjectDeclaration(db.Model):
|
|
238
|
+
__table_args__ = {"mysql_charset": "utf8mb4", "mysql_collate": "utf8mb4_unicode_ci"}
|
|
239
|
+
|
|
232
240
|
id = db.Column(db.String(36), primary_key=True, default=new_uuid)
|
|
233
241
|
projet = db.Column(db.String(255), nullable=False)
|
|
234
242
|
masterprojet = db.Column(db.String(255), nullable=False)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ositah"
|
|
7
|
-
version = "24.
|
|
7
|
+
version = "24.8"
|
|
8
8
|
description = "Outils de Suivi d'Activités basé sur Hito"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -31,16 +31,13 @@ dependencies = [
|
|
|
31
31
|
]
|
|
32
32
|
dynamic = []
|
|
33
33
|
|
|
34
|
+
[project.license]
|
|
35
|
+
text = "BSD 3-Clause License"
|
|
36
|
+
|
|
34
37
|
[[project.authors]]
|
|
35
38
|
name = "Michel Jouvin"
|
|
36
39
|
email = "michel.jouvin@ijclab.in2p3.fr"
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
[tool]
|
|
40
|
-
|
|
41
|
-
[project.license]
|
|
42
|
-
text = "BSD 3-Clause License"
|
|
43
|
-
|
|
44
41
|
[project.urls]
|
|
45
42
|
Homepage = "https://gitlab.in2p3.fr/hito/ositah"
|
|
46
43
|
"Bug Tracker" = "https://gitlab.in2p3.fr/hito/ositah/-/issues"
|
|
@@ -49,4 +46,4 @@ Homepage = "https://gitlab.in2p3.fr/hito/ositah"
|
|
|
49
46
|
ositah = "ositah.main:main"
|
|
50
47
|
|
|
51
48
|
[tool.setuptools]
|
|
52
|
-
packages = [ "ositah"
|
|
49
|
+
packages = [ "ositah",]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|