0003-CustomView-remove-other-calls-to-criteria-less-selec.patch
wcs/backoffice/management.py | ||
---|---|---|
799 | 799 |
def set_default_view(self): |
800 | 800 |
if not get_request(): |
801 | 801 |
return |
802 |
custom_views = list(self.get_custom_views()) |
|
802 |
custom_views = list( |
|
803 |
self.get_custom_views( |
|
804 |
[ |
|
805 |
Equal('is_default', True), |
|
806 |
Contains('visibility', ['any', 'owner']), |
|
807 |
] |
|
808 |
) |
|
809 |
) |
|
803 | 810 | |
804 | 811 |
# search for first default user custom view |
805 | 812 |
for view in custom_views: |
806 | 813 |
if view.visibility != 'owner': |
807 | 814 |
continue |
808 |
if not view.is_default: |
|
809 |
continue |
|
810 | 815 |
self.default_view = view |
811 | 816 |
return |
812 | 817 | |
... | ... | |
814 | 819 |
for view in custom_views: |
815 | 820 |
if view.visibility != 'any': |
816 | 821 |
continue |
817 |
if not view.is_default: |
|
818 |
continue |
|
819 | 822 |
self.default_view = view |
820 | 823 |
return |
821 | 824 | |
... | ... | |
2869 | 2872 |
return self.ics() |
2870 | 2873 | |
2871 | 2874 |
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)
|
|
2875 |
view = get_publisher().custom_view_class.get_by_url_slug(component)
|
|
2876 |
if view:
|
|
2877 |
return self.__class__(formdef=self.formdef, view=view) |
|
2875 | 2878 |
if component.startswith('user-'): |
2876 | 2879 |
get_session().message = ( |
2877 | 2880 |
'warning', |
wcs/custom_views.py | ||
---|---|---|
24 | 24 |
from wcs.carddef import CardDef |
25 | 25 |
from wcs.formdef import FormDef |
26 | 26 |
from wcs.qommon.misc import simplify |
27 |
from wcs.qommon.storage import Contains, Equal, NotContains, Nothing, StorableObject
|
|
27 |
from wcs.qommon.storage import And, Contains, Equal, NotContains, Nothing, Or, StorableObject
|
|
28 | 28 | |
29 | 29 |
from .qommon.misc import xml_node_text |
30 | 30 | |
... | ... | |
131 | 131 |
self.slug = '%s-%s' % (base_slug, i) |
132 | 132 |
i += 1 |
133 | 133 | |
134 |
@classmethod |
|
135 |
def get_by_url_slug(cls, slug): |
|
136 |
if slug.startswith("user-"): |
|
137 |
clauses = [ |
|
138 |
Or([Equal('slug', slug), And([Equal('visibility', 'owner'), Equal('slug', slug[5:])])]) |
|
139 |
] |
|
140 |
else: |
|
141 |
clauses = [Equal('slug', slug)] |
|
142 | ||
143 |
for x in cls.select(clauses): |
|
144 |
return x |
|
145 |
return None |
|
146 | ||
134 | 147 |
def get_url_slug(self): |
135 | 148 |
if self.visibility == 'owner': |
136 | 149 |
return 'user-%s' % self.slug |
137 |
- |