Browse Source

Fix to digital forms columns of parent not being pulled

Kenric Nugteren 3 weeks ago
parent
commit
439e509b25

+ 1 - 1
PRS.Avalonia/PRS.Avalonia/Components/FormsEditor/DigitalFormsHostViewModel.cs

@@ -189,7 +189,7 @@ public partial class DigitalFormsHostViewModel<TModel, TShell, TParent, TParentL
             {
                 Parent = Client.Query(
                     new Filter<TParent>(x => x.ID).IsEqualTo(Parent.ID),
-                    DFUtils.EntityColumns<TParent>(Variables))
+                    DFUtils.EntityColumns<TForm, TParent, TParentLink>(Variables))
                     .ToObjects<TParent>()
                     .First();
             }

+ 25 - 4
prs.desktop/Utils/FormUtils.cs

@@ -14,17 +14,22 @@ namespace PRSDesktop
     {
         public static void Register()
         {
-            DFUtils.AddFormUtils<AssignmentForm, Assignment, AssignmentLink>(CanEditAssignmentForm);
+            DFUtils.AddFormUtils<AssignmentForm, Assignment, AssignmentLink>(CanEditAssignmentForm, requiredColumnsFunc: RequiredAssignmentColumns);
             DFUtils.AddFormUtils<EmployeeForm, Employee, EmployeeLink>(CanEditEmployeeForm);
             DFUtils.AddFormUtils<JobForm, Job, JobLink>(CanEditJobForm);
             DFUtils.AddFormUtils<JobITPForm, JobITP, JobITPLink>(CanEditJobITPForm);
-            DFUtils.AddFormUtils<KanbanForm, Kanban, KanbanLink>(CanEditKanbanForm, NewKanban, KanbanOnSave);
-            DFUtils.AddFormUtils<LeaveRequestForm, LeaveRequest, LeaveRequestLink>(CanEditLeaveRequestForm);
+            DFUtils.AddFormUtils<KanbanForm, Kanban, KanbanLink>(CanEditKanbanForm, NewKanban, KanbanOnSave, requiredColumnsFunc: RequiredKanbanColumns);
+            DFUtils.AddFormUtils<LeaveRequestForm, LeaveRequest, LeaveRequestLink>(CanEditLeaveRequestForm, requiredColumnsFunc: RequiredLeaveRequestColumns);
             DFUtils.AddFormUtils<PurchaseOrderItemForm, PurchaseOrderItem, PurchaseOrderItemLink>(CanEditPurchaseOrderItemForm);
-            DFUtils.AddFormUtils<TimeSheetForm, TimeSheet, TimeSheetLink>(CanEditTimeSheetForm);
+            DFUtils.AddFormUtils<TimeSheetForm, TimeSheet, TimeSheetLink>(CanEditTimeSheetForm, requiredColumnsFunc: RequiredTimeSheetColumns);
             DFUtils.AddFormUtils<JobDocumentSetMileStoneForm, JobDocumentSetMileStone, JobDocumentSetMileStoneLink>(CanEditJobDocumentSetMileStoneForm);
         }
 
+        private static Columns<Assignment> RequiredAssignmentColumns()
+        {
+            return Columns.None<Assignment>().Add(x => x.EmployeeLink.ID);
+        }
+
         public static bool CanEditAssignmentForm(AssignmentForm form, Assignment assignment)
         {
             return assignment.EmployeeLink.ID == App.EmployeeID;
@@ -72,10 +77,21 @@ namespace PRSDesktop
             new Client<KanbanSubscriber>().Save(subscriber, "");
         }
 
+        private static Columns<Kanban> RequiredKanbanColumns()
+        {
+            return Columns.None<Kanban>().Add(x => x.EmployeeLink.ID);
+        }
+
         public static bool CanEditLeaveRequestForm(LeaveRequestForm form, LeaveRequest leaveRequest)
         {
             return leaveRequest.EmployeeLink.ID == App.EmployeeID;
         }
+
+        private static Columns<LeaveRequest> RequiredLeaveRequestColumns()
+        {
+            return Columns.None<LeaveRequest>().Add(x => x.EmployeeLink.ID);
+        }
+
         public static bool CanEditPurchaseOrderItemForm(PurchaseOrderItemForm form, PurchaseOrderItem purchaseOrderItem)
         {
             return false;
@@ -84,5 +100,10 @@ namespace PRSDesktop
         {
             return timeSheet.EmployeeLink.ID == App.EmployeeID;
         }
+
+        private static Columns<TimeSheet> RequiredTimeSheetColumns()
+        {
+            return Columns.None<TimeSheet>().Add(x => x.EmployeeLink.ID);
+        }
     }
 }