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.

Files changed (79) hide show
  1. {ositah-24.7.dev2/ositah.egg-info → ositah-24.8}/PKG-INFO +1 -1
  2. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/tables.py +3 -14
  3. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/agents.py +6 -1
  4. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/hito_db_model.py +8 -0
  5. {ositah-24.7.dev2 → ositah-24.8/ositah.egg-info}/PKG-INFO +1 -1
  6. {ositah-24.7.dev2 → ositah-24.8}/pyproject.toml +5 -8
  7. {ositah-24.7.dev2 → ositah-24.8}/.gitignore +0 -0
  8. {ositah-24.7.dev2 → ositah-24.8}/.gitlab-ci.yml +0 -0
  9. {ositah-24.7.dev2 → ositah-24.8}/LICENSE +0 -0
  10. {ositah-24.7.dev2 → ositah-24.8}/README.md +0 -0
  11. {ositah-24.7.dev2 → ositah-24.8}/docker/Dockerfile +0 -0
  12. {ositah-24.7.dev2 → ositah-24.8}/docker/docker-compose.yml +0 -0
  13. {ositah-24.7.dev2 → ositah-24.8}/docker/pyproject-poetry.toml +0 -0
  14. {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/README.md +0 -0
  15. {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/gunicorn.ositah +0 -0
  16. {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/gunicorn@.service +0 -0
  17. {ositah-24.7.dev2 → ositah-24.8}/gunicorn.config/ositah.conf.py +0 -0
  18. {ositah-24.7.dev2 → ositah-24.8}/noxfile.py +0 -0
  19. {ositah-24.7.dev2 → ositah-24.8}/ositah/__init__.py +0 -0
  20. {ositah-24.7.dev2 → ositah-24.8}/ositah/app.py +0 -0
  21. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/__init__.py +0 -0
  22. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/analysis.py +0 -0
  23. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/__init__.py +0 -0
  24. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/callbacks.py +0 -0
  25. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/main.py +0 -0
  26. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/parameters.py +0 -0
  27. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/configuration/tools.py +0 -0
  28. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/export.py +0 -0
  29. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/__init__.py +0 -0
  30. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/callbacks.py +0 -0
  31. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/main.py +0 -0
  32. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/parameters.py +0 -0
  33. {ositah-24.7.dev2 → ositah-24.8}/ositah/apps/validation/tools.py +0 -0
  34. {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/arrow_down_up.svg +0 -0
  35. {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/ositah.css +0 -0
  36. {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sort_ascending.svg +0 -0
  37. {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sort_descending.svg +0 -0
  38. {ositah-24.7.dev2 → ositah-24.8}/ositah/assets/sorttable.js +0 -0
  39. {ositah-24.7.dev2 → ositah-24.8}/ositah/main.py +0 -0
  40. {ositah-24.7.dev2 → ositah-24.8}/ositah/ositah.example.cfg +0 -0
  41. {ositah-24.7.dev2 → ositah-24.8}/ositah/static/style.css +0 -0
  42. {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/base.html +0 -0
  43. {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/bootstrap_login.html +0 -0
  44. {ositah-24.7.dev2 → ositah-24.8}/ositah/templates/login_form.html +0 -0
  45. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/__init__.py +0 -0
  46. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/authentication.py +0 -0
  47. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/cache.py +0 -0
  48. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/core.py +0 -0
  49. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/exceptions.py +0 -0
  50. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/hito_db.py +0 -0
  51. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/menus.py +0 -0
  52. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/period.py +0 -0
  53. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/projects.py +0 -0
  54. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/teams.py +0 -0
  55. {ositah-24.7.dev2 → ositah-24.8}/ositah/utils/utils.py +0 -0
  56. {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/SOURCES.txt +0 -0
  57. {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/dependency_links.txt +0 -0
  58. {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/entry_points.txt +0 -0
  59. {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/requires.txt +0 -0
  60. {ositah-24.7.dev2 → ositah-24.8}/ositah.egg-info/top_level.txt +0 -0
  61. {ositah-24.7.dev2 → ositah-24.8}/setup.cfg +0 -0
  62. {ositah-24.7.dev2 → ositah-24.8}/setup.py +0 -0
  63. {ositah-24.7.dev2 → ositah-24.8}/test-dash/README.md +0 -0
  64. {ositah-24.7.dev2 → ositah-24.8}/test-dash/accordion.py +0 -0
  65. {ositah-24.7.dev2 → ositah-24.8}/test-dash/authentication.py +0 -0
  66. {ositah-24.7.dev2 → ositah-24.8}/test-dash/checkbox.py +0 -0
  67. {ositah-24.7.dev2 → ositah-24.8}/test-dash/checklist.py +0 -0
  68. {ositah-24.7.dev2 → ositah-24.8}/test-dash/file-selector.py +0 -0
  69. {ositah-24.7.dev2 → ositah-24.8}/test-dash/file-upload.py +0 -0
  70. {ositah-24.7.dev2 → ositah-24.8}/test-dash/long_running_callback.py +0 -0
  71. {ositah-24.7.dev2 → ositah-24.8}/test-dash/pandas_split.py +0 -0
  72. {ositah-24.7.dev2 → ositah-24.8}/test-dash/pandas_split_bug_report.py +0 -0
  73. {ositah-24.7.dev2 → ositah-24.8}/test-dash/pattern-matching-callback.py +0 -0
  74. {ositah-24.7.dev2 → ositah-24.8}/test-dash/progess_bar.py +0 -0
  75. {ositah-24.7.dev2 → ositah-24.8}/test-dash/reset_table_checkboxes.py +0 -0
  76. {ositah-24.7.dev2 → ositah-24.8}/test-dash/sortable_table.py +0 -0
  77. {ositah-24.7.dev2 → ositah-24.8}/test-dash/sqlalchemy_test.py +0 -0
  78. {ositah-24.7.dev2 → ositah-24.8}/test-dash/templates/base.html +0 -0
  79. {ositah-24.7.dev2 → ositah-24.8}/test-dash/templates/login_form.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ositah
3
- Version: 24.7.dev2
3
+ Version: 24.8
4
4
  Summary: Outils de Suivi d'Activités basé sur Hito
5
5
  Author-email: Michel Jouvin <michel.jouvin@ijclab.in2p3.fr>
6
6
  License: BSD 3-Clause License
@@ -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
- agents = get_agents(period_date)
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
- agents = get_agents(period_date)
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[agent_list["team"].str.match(team, case=False, na=False)]
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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ositah
3
- Version: 24.7.dev2
3
+ Version: 24.8
4
4
  Summary: Outils de Suivi d'Activités basé sur Hito
5
5
  Author-email: Michel Jouvin <michel.jouvin@ijclab.in2p3.fr>
6
6
  License: BSD 3-Clause License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ositah"
7
- version = "24.7.dev2"
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