83 |
83 |
Nothing,
|
84 |
84 |
NotNull,
|
85 |
85 |
Null,
|
|
86 |
Or,
|
86 |
87 |
StrictNotEqual,
|
87 |
88 |
)
|
88 |
89 |
from ..qommon.substitution import CompatibilityNamesDict
|
... | ... | |
799 |
800 |
def set_default_view(self):
|
800 |
801 |
if not get_request():
|
801 |
802 |
return
|
802 |
|
custom_views = list(self.get_custom_views())
|
|
803 |
custom_views = list(
|
|
804 |
self.get_custom_views(
|
|
805 |
[
|
|
806 |
Equal('is_default', True),
|
|
807 |
Contains('visibility', ['any', 'owner']),
|
|
808 |
]
|
|
809 |
)
|
|
810 |
)
|
803 |
811 |
|
804 |
812 |
# search for first default user custom view
|
805 |
813 |
for view in custom_views:
|
806 |
814 |
if view.visibility != 'owner':
|
807 |
815 |
continue
|
808 |
|
if not view.is_default:
|
809 |
|
continue
|
810 |
816 |
self.default_view = view
|
811 |
817 |
return
|
812 |
818 |
|
... | ... | |
814 |
820 |
for view in custom_views:
|
815 |
821 |
if view.visibility != 'any':
|
816 |
822 |
continue
|
817 |
|
if not view.is_default:
|
818 |
|
continue
|
819 |
823 |
self.default_view = view
|
820 |
824 |
return
|
821 |
825 |
|
... | ... | |
840 |
844 |
raise errors.AccessUnauthorizedError()
|
841 |
845 |
|
842 |
846 |
def get_custom_views(self, criterias=None):
|
|
847 |
criterias = [
|
|
848 |
Equal('formdef_type', self.formdef.xml_root_node),
|
|
849 |
Equal('formdef_id', str(self.formdef.id)),
|
|
850 |
] + (criterias or [])
|
843 |
851 |
for view in get_publisher().custom_view_class.select(clause=criterias):
|
844 |
852 |
if view.match(get_request().user, self.formdef):
|
845 |
853 |
yield view
|
... | ... | |
2869 |
2877 |
return self.ics()
|
2870 |
2878 |
|
2871 |
2879 |
if not self.view:
|
2872 |
|
for view in self.get_custom_views():
|
2873 |
|
if view.get_url_slug() == component:
|
2874 |
|
return self.__class__(formdef=self.formdef, view=view)
|
|
2880 |
view_slug = component
|
|
2881 |
if view_slug.startswith('user-'):
|
|
2882 |
view_slug = view_slug[5:]
|
|
2883 |
for view in self.get_custom_views([Or([Equal('slug', view_slug), Equal('slug', component)])]):
|
|
2884 |
return self.__class__(formdef=self.formdef, view=view)
|
2875 |
2885 |
if component.startswith('user-'):
|
2876 |
2886 |
get_session().message = (
|
2877 |
2887 |
'warning',
|
2878 |
|
-
|