Skip to content
Open
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
ea53b45
feat: add work assignment doctype and child table
MarcCon Jan 8, 2026
78526c9
feat: add organization filter for member
MarcCon Jan 8, 2026
57c06f8
feat: set organization based on user role
MarcCon Jan 8, 2026
382fb35
feat: add work hours report
MarcCon Jan 8, 2026
9bdf1a6
fix: permissions for work assignment
MarcCon Jan 9, 2026
5d6e57b
feat: create work assignment from member
MarcCon Jan 9, 2026
2a1eaf5
fix: remove accidentally committed file
MarcCon Jan 10, 2026
5a16aa2
fix: correct organization assignment
MarcCon Jan 10, 2026
11b4cf1
feat: add translations
MarcCon Jan 12, 2026
6863069
fix: delete unnecessary pass
MarcCon Jan 16, 2026
0549fc0
fix: unused import
MarcCon Jan 16, 2026
819edf4
Merge remote-tracking branch 'upstream/version-15-hotfix' into lan-885
barredterra Jan 16, 2026
adb72ba
refactor: use get_list instread of raw sql
MarcCon Jan 26, 2026
bf410c6
fix: use hash naming
MarcCon Jan 26, 2026
1716666
fix: js filter
MarcCon Jan 26, 2026
0f22296
feat: make work assignment submittable
MarcCon Jan 28, 2026
ba6cb69
feat(Organization): add work hours field
MarcCon Jan 28, 2026
c662199
feat: add work ledger entry doctype
MarcCon Jan 28, 2026
ab8fa6c
feat: create and delete work ledger entry from work assignment
MarcCon Jan 28, 2026
0f53b47
feat: create yearly negative entries
MarcCon Jan 31, 2026
9c6798b
feat(Work Ledger Entry): filter members of organization
MarcCon Jan 31, 2026
4e7a493
fix: remove accidentally commited link
MarcCon Feb 18, 2026
4f58745
fix: remove naming_series field
MarcCon Feb 18, 2026
19709aa
fix: use work ledger entry for report
MarcCon Feb 18, 2026
718f150
feat(Organization): track expected work hours changes
MarcCon Feb 18, 2026
1c14f45
feat: add work ledger balance report
MarcCon Feb 27, 2026
651d719
feat: add translations
MarcCon Feb 27, 2026
2f225b3
Merge remote-tracking branch 'upstream/version-15-hotfix' into lan-885
barredterra Mar 9, 2026
8507b93
fix: increase report col width
barredterra Mar 9, 2026
fcf3074
fix: treat missing work assignment as adjustment entry
barredterra Mar 9, 2026
396c0b4
feat(Work Assignment): add connection to work ledger entry
MarcCon Apr 8, 2026
91c3c7d
feat: add reports to organization management workspace
MarcCon Apr 8, 2026
b180c75
fix(Work Hours Report): handle missing descriptions
MarcCon Apr 8, 2026
628607c
feat: translations
MarcCon Apr 8, 2026
7ccf61a
fix: type error
MarcCon Apr 8, 2026
ad85f12
fix(Work Assignment): update permissions
MarcCon Apr 9, 2026
efb8f7d
fix: remove unnecessary pass
MarcCon Apr 13, 2026
604156f
Merge branch 'version-15-hotfix' into lan-885
MarcCon Apr 23, 2026
643f818
Merge branch 'version-15-hotfix' into lan-885
barredterra Apr 25, 2026
c6f32c5
test: build on FrappeTestCase
barredterra Apr 27, 2026
870e774
fix: work assignment data in work ledger balance
barredterra Apr 27, 2026
7855ce2
feat: add doctype shortcuts to workspace
MarcCon May 5, 2026
179be9f
feat(Work Assignment): show title in link
MarcCon May 6, 2026
6fcb6ce
fix(Organization): update link to Work Assignment
MarcCon May 6, 2026
4c3e8bb
fix(Work Hours Report): activate add_total_row
MarcCon May 6, 2026
79e4375
fix(Work Assignment): delete work ledger entries
MarcCon Jun 15, 2026
5da3c1e
feat(Work Ledger Entry): disable form when connected to work assignment
MarcCon Jun 25, 2026
2ed1318
Merge branch 'version-15-hotfix' into lan-885
MarcCon Jun 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions landa/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,9 @@
"0 0 1 10 *": [ # every 1st october at 00:00
"landa.water_body_management.doctype.stocking_target.stocking_target.copy_to_next_year",
],
"0 0 1 1 *": [ # every 1st january at 00:00
"landa.organization_management.doctype.work_ledger_entry.work_ledger_entry.create_yearly_negative_entries",
],
},
# "all": ["landa.tasks.all"],
# , "hourly": [
Expand Down
183 changes: 166 additions & 17 deletions landa/locale/de.po

Large diffs are not rendered by default.

162 changes: 154 additions & 8 deletions landa/locale/main.pot
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LANDA VERSION\n"
"Report-Msgid-Bugs-To: hallo@alyf.de\n"
"POT-Creation-Date: 2026-03-18 23:14+0053\n"
"PO-Revision-Date: 2026-03-18 23:14+0053\n"
"POT-Creation-Date: 2026-04-08 10:04+0053\n"
"PO-Revision-Date: 2026-04-08 10:04+0053\n"
"Last-Translator: hallo@alyf.de\n"
"Language-Team: hallo@alyf.de\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -94,6 +94,12 @@ msgstr ""
msgid "Access Level"
msgstr ""

#. Label of a Data field in DocType 'Work Assignment'
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/report/work_hours/work_hours.py:49
msgid "Activity Title"
msgstr ""

#. Label of a Data field in DocType 'Member Data Import'
#: landa/organization_management/doctype/member_data_import/member_data_import.json
#: landa/organization_management/report/current_member_data/current_member_data.py:131
Expand Down Expand Up @@ -156,10 +162,25 @@ msgstr ""
msgid "Awards"
msgstr ""

#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:26
msgid "Balance End Previous Year"
msgstr ""

#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:44
msgid "Balance End of Year"
msgstr ""

#: landa/water_body_management/doctype/stocking_measure/stocking_measure_list.js:30
msgid "Based on your selection, Stocking Targets are created accordingly for the specified year."
msgstr ""

#. Label of a Section Break field in DocType 'Work Assignment'
#. Label of a Section Break field in DocType 'Work Ledger Entry'
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
msgid "Basic Information"
msgstr ""

#. Label of a Card Break in the Water Body Management Workspace
#: landa/water_body_management/workspace/water_body_management/water_body_management.json
msgid "Berichte"
Expand Down Expand Up @@ -225,7 +246,7 @@ msgstr ""
msgid "Cannot be a member of organization {} because it is a group."
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:70
#: landa/organization_management/doctype/organization/organization.py:74
msgid "Cannot set Parent Organization to a local group."
msgstr ""

Expand Down Expand Up @@ -392,11 +413,30 @@ msgstr ""
msgid "Dummy"
msgstr ""

#. Label of a Float field in DocType 'Work Assignment Member'
#: landa/organization_management/doctype/work_assignment_member/work_assignment_member.json
#: landa/organization_management/report/work_hours/work_hours.py:56
msgid "Duration (Hours)"
msgstr ""

#. Label of a Check field in DocType 'Firebase Settings'
#: landa/water_body_management/doctype/firebase_settings/firebase_settings.json
msgid "Enable Firebase Notifications"
msgstr ""

#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:32
msgid "Expected This Year"
msgstr ""

#. Label of a Float field in DocType 'Organization'
#: landa/organization_management/doctype/organization/organization.json
msgid "Expected Work Hours per Year"
msgstr ""

#: landa/organization_management/report/work_hours/work_hours.py:119
msgid "Expected work hours adjustment"
msgstr ""

#. Name of a DocType
#. Label of a Heading field in DocType 'External Contact'
#. Label of a Link in the Organization Management Workspace
Expand Down Expand Up @@ -693,6 +733,10 @@ msgstr ""
msgid "Group By Fish Species"
msgstr ""

#: landa/organization_management/report/work_hours/work_hours.js:36
msgid "Group by Member"
msgstr ""

#. Label of a Check field in DocType 'Water Body'
#: landa/water_body_management/doctype/water_body/water_body.json
#: landa/water_body_management/report/water_body_export/water_body_export.py:55
Expand Down Expand Up @@ -779,6 +823,15 @@ msgstr ""
msgid "History"
msgstr ""

#: landa/organization_management/report/work_hours/work_hours.py:32
msgid "Hours Balance"
msgstr ""

#. Label of a Float field in DocType 'Work Ledger Entry'
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
msgid "Hours Change"
msgstr ""

#. Label of a Link field in DocType 'Member Data Import'
#: landa/organization_management/doctype/member_data_import/member_data_import.json
#: landa/organization_management/report/current_member_data/current_member_data.py:178
Expand All @@ -795,6 +848,12 @@ msgstr ""
msgid "Icon Preview"
msgstr ""

#. Description of the 'Work Assignment' (Link) field in DocType 'Work Ledger
#. Entry'
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
msgid "If not set, this entry will be treated as an adjustment of expected hours."
msgstr ""

#. Label of a Card Break in the Water Body Management Workspace
#: landa/water_body_management/workspace/water_body_management/water_body_management.json
msgid "Importe"
Expand Down Expand Up @@ -977,12 +1036,15 @@ msgstr ""
#: landa/organization_management/doctype/member_function/member_function.json
#: landa/organization_management/doctype/member_function_category/member_function_category.json
#: landa/organization_management/doctype/organization/organization.json
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
#: landa/organization_management/doctype/yearly_fishing_permit/yearly_fishing_permit.json
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
msgid "LANDA Local Organization Management"
msgstr ""

#. Name of a role
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
#: landa/water_body_management/doctype/stocking_measure_import/stocking_measure_import.json
#: landa/water_body_management/doctype/stocking_target/stocking_target.json
Expand Down Expand Up @@ -1056,6 +1118,8 @@ msgstr ""
#: landa/organization_management/doctype/member_function/member_function.json
#: landa/organization_management/doctype/member_function_category/member_function_category.json
#: landa/organization_management/doctype/organization/organization.json
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
#: landa/organization_management/doctype/yearly_fishing_permit/yearly_fishing_permit.json
#: landa/organization_management/doctype/yearly_fishing_permit_type/yearly_fishing_permit_type.json
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
Expand Down Expand Up @@ -1092,6 +1156,8 @@ msgstr ""
#: landa/organization_management/doctype/member_function/member_function.json
#: landa/organization_management/doctype/member_function_category/member_function_category.json
#: landa/organization_management/doctype/organization/organization.json
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
#: landa/organization_management/doctype/yearly_fishing_permit/yearly_fishing_permit.json
#: landa/organization_management/doctype/yearly_fishing_permit_type/yearly_fishing_permit_type.json
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
Expand Down Expand Up @@ -1265,10 +1331,14 @@ msgstr ""

#. Label of a Heading field in DocType 'LANDA Member'
#. Label of a Link field in DocType 'Member Function'
#. Label of a Link field in DocType 'Work Assignment Member'
#. Label of a Link field in DocType 'Work Ledger Entry'
#. Label of a Link field in DocType 'Yearly Fishing Permit'
#. Label of a Link in the Organization Management Workspace
#: landa/organization_management/doctype/landa_member/landa_member.json
#: landa/organization_management/doctype/member_function/member_function.json
#: landa/organization_management/doctype/work_assignment_member/work_assignment_member.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
#: landa/organization_management/doctype/yearly_fishing_permit/yearly_fishing_permit.json
#: landa/organization_management/report/magazine_address_list/magazine_address_list.py:150
#: landa/organization_management/report/member_address_list/member_address_list.js:10
Expand All @@ -1277,6 +1347,11 @@ msgstr ""
#: landa/organization_management/report/member_contact_list/member_contact_list.js:10
#: landa/organization_management/report/member_contact_list/member_contact_list.py:53
#: landa/organization_management/report/members_with_member_functions/members_with_member_functions.py:21
#: landa/organization_management/report/work_hours/work_hours.js:24
#: landa/organization_management/report/work_hours/work_hours.py:19
#: landa/organization_management/report/work_hours/work_hours.py:42
#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.js:24
#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:18
#: landa/organization_management/workspace/organization_management/organization_management.json
#: landa/water_body_management/report/members_in_water_body_management/members_in_water_body_management.py:17
msgid "Member"
Expand Down Expand Up @@ -1376,6 +1451,16 @@ msgstr ""
msgid "Member Last Name"
msgstr ""

#. Label of a Data field in DocType 'Work Assignment Member'
#. Label of a Data field in DocType 'Work Ledger Entry'
#: landa/organization_management/doctype/work_assignment_member/work_assignment_member.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
#: landa/organization_management/report/work_hours/work_hours.py:26
#: landa/organization_management/report/work_hours/work_hours.py:48
#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:24
msgid "Member Name"
msgstr ""

#. Label of a Date field in DocType 'LANDA Member'
#: landa/organization_management/doctype/landa_member/landa_member.json
msgid "Member Since"
Expand Down Expand Up @@ -1467,7 +1552,7 @@ msgstr ""
msgid "New Stocking Measure Import"
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:320
#: landa/organization_management/doctype/organization/organization.py:335
msgid "No Company found for Organization {0}."
msgstr ""

Expand Down Expand Up @@ -1547,6 +1632,11 @@ msgstr ""
msgid "Permit Issue Date"
msgstr ""

#. Label of a Float field in DocType 'Work Assignment'
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/report/work_hours/work_hours.py:51
msgid "Planned Duration (Hours)"
msgstr ""
#: landa/organization_management/doctype/landa_member/landa_member_list.js:115
msgid "Permits have been created for {0} members and skipped for {1} members."
msgstr "Erlaubnisscheine wurden für {0} Mitglieder erstellt und für {1} Mitglieder übersprungen."
Expand Down Expand Up @@ -1584,7 +1674,7 @@ msgstr ""
msgid "Please set a Billing Contact before submitting the Sales Invoice."
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:62
#: landa/organization_management/doctype/organization/organization.py:66
msgid "Please set a Parent Organization."
msgstr ""

Expand Down Expand Up @@ -1966,15 +2056,15 @@ msgstr ""
msgid "The weight of {0} in row {1} diverges from the typical weight by more than 40 %"
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:316
#: landa/organization_management/doctype/organization/organization.py:331
msgid "There is no Customer linked to {0}."
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:239
#: landa/organization_management/doctype/organization/organization.py:254
msgid "There is no single address linked to {0}."
msgstr ""

#: landa/organization_management/doctype/organization/organization.py:231
#: landa/organization_management/doctype/organization/organization.py:246
msgid "There is no single contact linked to {0}."
msgstr ""

Expand Down Expand Up @@ -2098,6 +2188,7 @@ msgstr ""
msgid "Vollzahler"
msgstr ""

#. Label of a Link field in DocType 'Work Assignment'
#. Label of a Link field in DocType 'Catch Log Entry'
#. Linked DocType in Fishing Area's connections
#. Label of a Link field in DocType 'Lease Contract'
Expand All @@ -2111,6 +2202,9 @@ msgstr ""
#. Name of a DocType
#. Label of a Link field in DocType 'Water Body Management Local Organization'
#. Label of a Link in the Water Body Management Workspace
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/report/work_hours/work_hours.js:30
#: landa/organization_management/report/work_hours/work_hours.py:58
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
#: landa/water_body_management/doctype/fishing_area/fishing_area.json
#: landa/water_body_management/doctype/lease_contract/lease_contract.json
Expand Down Expand Up @@ -2241,11 +2335,13 @@ msgstr ""
msgid "Water Body Status"
msgstr ""

#. Label of a Data field in DocType 'Work Assignment'
#. Label of a Data field in DocType 'Catch Log Entry'
#. Label of a Data field in DocType 'Lease Contract'
#. Label of a Data field in DocType 'Stocking Measure'
#. Label of a Data field in DocType 'Stocking Target'
#. Label of a Data field in DocType 'Water Body Management Local Organization'
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/water_body_management/doctype/catch_log_entry/catch_log_entry.json
#: landa/water_body_management/doctype/lease_contract/lease_contract.json
#: landa/water_body_management/doctype/stocking_measure/stocking_measure.json
Expand Down Expand Up @@ -2286,6 +2382,56 @@ msgstr ""
msgid "Wikipedia Link"
msgstr ""

#. Name of a DocType
#. Label of a Link field in DocType 'Work Ledger Entry'
#: landa/organization_management/doctype/landa_member/landa_member.js:77
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
msgid "Work Assignment"
msgstr ""

#. Name of a DocType
#: landa/organization_management/doctype/work_assignment_member/work_assignment_member.json
msgid "Work Assignment Member"
msgstr ""

#. Name of a report
#. Label of a Link in the Organization Management Workspace
#: landa/organization_management/report/work_hours/work_hours.json
#: landa/organization_management/workspace/organization_management/organization_management.json
msgid "Work Hours"
msgstr ""

#. Label of a Section Break field in DocType 'Organization'
#: landa/organization_management/doctype/organization/organization.json
msgid "Work Hours Account"
msgstr ""

#. Label of a Link in the Organization Management Workspace
#: landa/organization_management/workspace/organization_management/organization_management.json
msgid "Work Hours Per Member and Year"
msgstr ""

#. Name of a report
#. Label of a Link in the Organization Management Workspace
#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.json
#: landa/organization_management/workspace/organization_management/organization_management.json
msgid "Work Ledger Balance"
msgstr ""

#. Linked DocType in Organization's connections
#. Linked DocType in Work Assignment's connections
#. Name of a DocType
#: landa/organization_management/doctype/organization/organization.json
#: landa/organization_management/doctype/work_assignment/work_assignment.json
#: landa/organization_management/doctype/work_ledger_entry/work_ledger_entry.json
msgid "Work Ledger Entry"
msgstr ""

#: landa/organization_management/report/work_ledger_balance/work_ledger_balance.py:38
msgid "Worked This Year"
msgstr ""

#: landa/water_body_management/stocking_controller.py:23
msgid "Year must be between {0} and {1}."
msgstr ""
Expand Down
23 changes: 23 additions & 0 deletions landa/organization_management/doctype/landa_member/landa_member.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,21 @@ frappe.ui.form.on("LANDA Member", {
organization: frm.doc.organization,
});
},
"Work Assignment": () => {
frappe.model.with_doctype("Work Assignment", () => {
let new_doc = frappe.model.get_new_doc("Work Assignment");
new_doc.organization = frm.doc.organization;

let child = frappe.model.add_child(
new_doc,
"Work Assignment Member",
"members",
);
child.member = frm.doc.name;

frappe.set_route("Form", "Work Assignment", new_doc.name);
});
},
};
},
refresh: function (frm) {
Expand Down Expand Up @@ -57,6 +72,14 @@ frappe.ui.form.on("LANDA Member", {
});
});
});

frm.add_custom_button(
__("Work Assignment"),
function () {
frm.make_methods["Work Assignment"]();
},
__("Create"),
);
}
},
});
Loading
Loading