From 4e4972fe2df0256af5dc75fd3f809d2c878ad203 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Fri, 17 Jan 2025 11:39:05 +0530 Subject: [PATCH] refactor: Use @cached_property (#29212) --- frappe/model/meta.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/frappe/model/meta.py b/frappe/model/meta.py index 8fadb05738..a7457f99cb 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -223,10 +223,12 @@ class Meta(Document): return self.get("fields", {"fieldtype": "Phone"}) def get_dynamic_link_fields(self): - if not hasattr(self, "_dynamic_link_fields"): - self._dynamic_link_fields = self.get("fields", {"fieldtype": "Dynamic Link"}) return self._dynamic_link_fields + @cached_property + def _dynamic_link_fields(self): + return self.get("fields", {"fieldtype": "Dynamic Link"}) + def get_select_fields(self): return self.get("fields", {"fieldtype": "Select", "options": ["not in", ["[Select]", "Loading..."]]}) @@ -640,10 +642,12 @@ class Meta(Document): def get_high_permlevel_fields(self): """Build list of fields with high perm level and all the higher perm levels defined.""" - if not hasattr(self, "high_permlevel_fields"): - self.high_permlevel_fields = [df for df in self.fields if df.permlevel > 0] return self.high_permlevel_fields + @cached_property + def high_permlevel_fields(self): + return [df for df in self.fields if df.permlevel > 0] + def get_permitted_fieldnames( self, parenttype=None,