feat: add work assignment doctype with member hour tracking (LAN-885)#294
feat: add work assignment doctype with member hour tracking (LAN-885)#294MarcCon wants to merge 30 commits intoversion-15-hotfixfrom
Conversation
landa/organization_management/doctype/work_assignment/work_assignment.py
Fixed
Show fixed
Hide fixed
landa/organization_management/doctype/work_assignment/test_work_assignment.py
Fixed
Show fixed
Hide fixed
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Good start!
I think in the requirements I read that each Organization should be able to specify a number of working hours per year and we need to track the members´ actual working hours against that. And, ideally, also allow carrying over excess working hours to the next year.
Let's also add the Work Assignment to the connections in the LANDA Member form.
landa/organization_management/doctype/work_assignment/work_assignment.js
Outdated
Show resolved
Hide resolved
landa/organization_management/doctype/work_assignment/work_assignment.json
Outdated
Show resolved
Hide resolved
My idea would be to add a DocType "Organization Work Hours" with a child table to show members of the organization with their hours from the Work Assignment DocType and validate them against the target hours. |
|
See my alternative proposal in LAN-885 |
| organization_name: DF.Data | None | ||
| work_assignment: DF.Link | None | ||
| # end: auto-generated types | ||
| pass |
Check warning
Code scanning / CodeQL
Unnecessary pass Warning
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 24 days ago
To fix this, remove the unnecessary pass statement from the WorkLedgerEntry class body while leaving the auto-generated types block untouched. This preserves all existing behavior (including type-checker-only hints) and simply eliminates a redundant no-op.
Concretely, in landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.py, delete line 27 (pass) from the WorkLedgerEntry class definition. No additional imports, methods, or definitions are needed.
| @@ -24,7 +24,6 @@ | ||
| organization_name: DF.Data | None | ||
| work_assignment: DF.Link | None | ||
| # end: auto-generated types | ||
| pass | ||
|
|
||
|
|
||
| def create_yearly_negative_entries(): |
There was a problem hiding this comment.
Ich habe in "Work Ledger Balance" die Spaltenbreiten angepasst und die Logik so angepasst, dass Work Ledger Entries ohne Work Assignment in der "Expected"-Spalte landen, und solche mit Work Assignment in der "Hours Worked"-Spalte (statt unter/über Null). Dadurch wird eine Verringerung der Expected Hours via Organization nicht mehr als geleistete Arbeit angezeigt.
Weitere nötige Arbeiten:
-
Work Assignment:
- Connections mit Link auf Work Ledger Entry hinzufügen
- DocType ist submittable, aber niemand hat Submit-Rechte (auch Cancel, Amend, usw)
-
Bericht "Arbeitsstunden"
- Für Zeilen ohne Work Assignment sollten wir eine hilfreiche Beschreibung ausgeben, z.B. "Anpassung der erwarteten Arbeitszeit".
- Spalte "Gesamtstunden" umbenennen zu "Stundensaldo"
-
Berichte zu Workspace "Vereinsverwaltung" hinzufügen
-
Als normaler Nutzer (Rolle "Mitgliederverwaltung Verein") durchtesten
-
TypeError beheben:
File "/home/runner/frappe-bench/apps/landa/landa/organization_management/doctype/organization/organization.py", line 105, in on_update create_expected_hours_adjustment_entries(self.name, old - new) ~~~~^~~~~ TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
This PR enables tracking of work hours for members through work assignments.
Features:
Open Questions:
Do we need a hourly account for a member? It is not necessary for the report.