ositah 24.9.dev2__tar.gz → 24.9.dev3__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.9.dev2/ositah.egg-info → ositah-24.9.dev3}/PKG-INFO +1 -1
  2. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/analysis.py +15 -4
  3. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/ositah.example.cfg +4 -0
  4. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/utils.py +7 -0
  5. {ositah-24.9.dev2 → ositah-24.9.dev3/ositah.egg-info}/PKG-INFO +1 -1
  6. {ositah-24.9.dev2 → ositah-24.9.dev3}/pyproject.toml +1 -1
  7. {ositah-24.9.dev2 → ositah-24.9.dev3}/.gitignore +0 -0
  8. {ositah-24.9.dev2 → ositah-24.9.dev3}/.gitlab-ci.yml +0 -0
  9. {ositah-24.9.dev2 → ositah-24.9.dev3}/LICENSE +0 -0
  10. {ositah-24.9.dev2 → ositah-24.9.dev3}/README.md +0 -0
  11. {ositah-24.9.dev2 → ositah-24.9.dev3}/docker/Dockerfile +0 -0
  12. {ositah-24.9.dev2 → ositah-24.9.dev3}/docker/docker-compose.yml +0 -0
  13. {ositah-24.9.dev2 → ositah-24.9.dev3}/docker/pyproject-poetry.toml +0 -0
  14. {ositah-24.9.dev2 → ositah-24.9.dev3}/gunicorn.config/README.md +0 -0
  15. {ositah-24.9.dev2 → ositah-24.9.dev3}/gunicorn.config/gunicorn.ositah +0 -0
  16. {ositah-24.9.dev2 → ositah-24.9.dev3}/gunicorn.config/gunicorn@.service +0 -0
  17. {ositah-24.9.dev2 → ositah-24.9.dev3}/gunicorn.config/ositah.conf.py +0 -0
  18. {ositah-24.9.dev2 → ositah-24.9.dev3}/noxfile.py +0 -0
  19. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/__init__.py +0 -0
  20. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/app.py +0 -0
  21. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/__init__.py +0 -0
  22. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/configuration/__init__.py +0 -0
  23. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/configuration/callbacks.py +0 -0
  24. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/configuration/main.py +0 -0
  25. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/configuration/parameters.py +0 -0
  26. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/configuration/tools.py +0 -0
  27. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/export.py +0 -0
  28. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/__init__.py +0 -0
  29. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/callbacks.py +0 -0
  30. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/main.py +0 -0
  31. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/parameters.py +0 -0
  32. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/tables.py +0 -0
  33. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/apps/validation/tools.py +0 -0
  34. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/assets/arrow_down_up.svg +0 -0
  35. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/assets/ositah.css +0 -0
  36. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/assets/sort_ascending.svg +0 -0
  37. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/assets/sort_descending.svg +0 -0
  38. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/assets/sorttable.js +0 -0
  39. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/main.py +0 -0
  40. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/static/style.css +0 -0
  41. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/templates/base.html +0 -0
  42. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/templates/bootstrap_login.html +0 -0
  43. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/templates/login_form.html +0 -0
  44. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/__init__.py +0 -0
  45. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/agents.py +0 -0
  46. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/authentication.py +0 -0
  47. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/cache.py +0 -0
  48. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/core.py +0 -0
  49. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/exceptions.py +0 -0
  50. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/hito_db.py +0 -0
  51. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/hito_db_model.py +0 -0
  52. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/menus.py +0 -0
  53. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/period.py +0 -0
  54. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/projects.py +0 -0
  55. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah/utils/teams.py +0 -0
  56. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah.egg-info/SOURCES.txt +0 -0
  57. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah.egg-info/dependency_links.txt +0 -0
  58. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah.egg-info/entry_points.txt +0 -0
  59. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah.egg-info/requires.txt +0 -0
  60. {ositah-24.9.dev2 → ositah-24.9.dev3}/ositah.egg-info/top_level.txt +0 -0
  61. {ositah-24.9.dev2 → ositah-24.9.dev3}/setup.cfg +0 -0
  62. {ositah-24.9.dev2 → ositah-24.9.dev3}/setup.py +0 -0
  63. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/README.md +0 -0
  64. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/accordion.py +0 -0
  65. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/authentication.py +0 -0
  66. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/checkbox.py +0 -0
  67. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/checklist.py +0 -0
  68. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/file-selector.py +0 -0
  69. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/file-upload.py +0 -0
  70. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/long_running_callback.py +0 -0
  71. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/pandas_split.py +0 -0
  72. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/pandas_split_bug_report.py +0 -0
  73. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/pattern-matching-callback.py +0 -0
  74. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/progess_bar.py +0 -0
  75. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/reset_table_checkboxes.py +0 -0
  76. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/sortable_table.py +0 -0
  77. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/sqlalchemy_test.py +0 -0
  78. {ositah-24.9.dev2 → ositah-24.9.dev3}/test-dash/templates/base.html +0 -0
  79. {ositah-24.9.dev2 → ositah-24.9.dev3}/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.9.dev2
3
+ Version: 24.9.dev3
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
@@ -301,11 +301,22 @@ def project_agents_time(declarations, project):
301
301
  global_params = GlobalParams()
302
302
  columns = global_params.columns
303
303
 
304
- project_agents = declarations[declarations[columns["activity"]] == project].sort_values(
305
- by="nom"
304
+ project_agents = declarations[declarations[columns["activity"]] == project]
305
+ project_agents.loc[:, columns["hours"]] = np.round(project_agents[columns["hours"]]).astype(
306
+ "int"
307
+ )
308
+ project_agents.loc[:, columns["weeks"]] = np.round(
309
+ project_agents.loc[:, columns["hours"]] / WEEK_HOURS, 1
310
+ )
311
+ if global_params.analysis_params["contributions_sorted_by_name"]:
312
+ sort_by = ["nom", columns["hours"]]
313
+ sort_ascending = True
314
+ else:
315
+ sort_by = [columns["hours"], "nom"]
316
+ sort_ascending = False
317
+ project_agents.sort_values(
318
+ by=sort_by, ascending=sort_ascending, ignore_index=True, inplace=True
306
319
  )
307
- project_agents[columns["hours"]] = np.round(project_agents[columns["hours"]]).astype("int")
308
- project_agents[columns["weeks"]] = np.round(project_agents[columns["hours"]] / WEEK_HOURS, 1)
309
320
  return html.Div(
310
321
  [
311
322
  html.Div(
@@ -105,6 +105,10 @@ declaration:
105
105
  suspect: 80
106
106
  good: 100
107
107
 
108
+ # Information related to declaration analysis
109
+ analysis:
110
+ contributions_sorted_by_name: False
111
+
108
112
  # Information related to validation
109
113
  validation:
110
114
  override_period:
@@ -224,6 +224,7 @@ class OSITAHSessionData:
224
224
  class GlobalParams:
225
225
  def __init__(self):
226
226
  self.agent_query = None
227
+ self.analysis_params = None
227
228
  self.category_patterns = {}
228
229
  self.columns = COLUMN_NAMES
229
230
  self.column_titles = None
@@ -391,6 +392,12 @@ def define_config_params(file):
391
392
  config["declaration"]["default_date"] = datetime.now()
392
393
  global_params.declaration_options = config["declaration"]
393
394
 
395
+ if "analysis" not in config:
396
+ config["analysis"] = {}
397
+ if "contributions_sorted_by_name" not in config["analysis"]:
398
+ config["analysis"]["contributions_sorted_by_name"] = True
399
+ global_params.analysis_params = config["analysis"]
400
+
394
401
  if "validation" not in config:
395
402
  config["validation"] = {}
396
403
  if "override_period" not in config["validation"]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ositah
3
- Version: 24.9.dev2
3
+ Version: 24.9.dev3
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.9.dev2"
7
+ version = "24.9.dev3"
8
8
  description = "Outils de Suivi d'Activités basé sur Hito"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
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