Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add macrogroup_id to group serializer. (#761) #772

Merged
merged 3 commits into from
Mar 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 9 additions & 5 deletions g3w-admin/about/api/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def filter_queryset(self, request, queryset, view):


class UserProjectFilter(BaseFilterBackend):
"""A filter backend for portal module for qdjango project"""
"""A filter backend for about module for qdjango project"""

def filter_queryset(self, request, queryset, view):
"""
Expand All @@ -47,20 +47,24 @@ def filter_queryset(self, request, queryset, view):


class GroupProjectFilter(BaseFilterBackend):
"""A filter backend for portal module for qdjango project , filter by group"""
"""A filter backend for about module for qdjango project , filter by group"""

def filter_queryset(self, request, queryset, view):
"""
Return a filtered queryset by group_id
"""

if 'group_id' in view.kwargs:
queryset = queryset.filter(group_id=view.kwargs['group_id']).order_by('order')

if resolve(request.path_info).url_name == 'about-group-without-macrogroup-api-list':
queryset = queryset.filter(macrogroups__pk=None)

return queryset


class MacroGroupGroupFilter(BaseFilterBackend):
"""A filter backend for portal module for group, filter by macrogroup"""
"""A filter backend for about module for group, filter by macrogroup"""

def filter_queryset(self, request, queryset, view):
"""
Expand All @@ -70,14 +74,14 @@ def filter_queryset(self, request, queryset, view):
queryset = queryset.filter(macrogroups__pk=view.kwargs['macrogroup_id'])

# check for group without macrogroup
if resolve(request.path_info).url_name == 'portal-group-without-macrogroup-api-list':
if resolve(request.path_info).url_name == 'about-group-without-macrogroup-api-list':
queryset = queryset.filter(macrogroups__pk=None)

return queryset


class PanoramicProjectFilter(BaseFilterBackend):
"""A filter backend for portal module for qdjango project , filter by not panoramic"""
"""A filter backend for about module for qdjango project , filter by not panoramic"""

def filter_queryset(self, request, queryset, view):

Expand Down
13 changes: 9 additions & 4 deletions g3w-admin/about/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ def setUpTestData(cls):

cls.project_group2.save()

cls.project_group3 = CoreGroup(name='Group3', title='Group3', header_logo_img='',
srid=G3WSpatialRefSys.objects.get(auth_srid=3857))

cls.project_group3.save()

# create macrogroups
cls.macrogroup = MacroGroup(title='Macrogroup1', logo_img='macrogroup.png')
cls.macrogroup.save()
Expand Down Expand Up @@ -173,7 +178,7 @@ def test_group(self):
response = client.get(url)
self.assertEqual(response.status_code, 200)
jcontent = json.loads(response.content)
self.assertEqual(len(jcontent), 2)
self.assertEqual(len(jcontent), 3)
feature = jcontent[0]
self.assertIn('edit_url', feature)
group = CoreGroup.objects.filter(pk=feature['id'])[0]
Expand Down Expand Up @@ -318,7 +323,7 @@ def test_macrogroup(self):
response = client.get(url)
self.assertEqual(response.status_code, 200)
jcontent = json.loads(response.content)
self.assertEqual(len(jcontent), 2)
self.assertEqual(len(jcontent), 1)

# ad new group without macrogroup
new_group = CoreGroup(name='Group33', title='Group33', header_logo_img='',
Expand All @@ -328,8 +333,8 @@ def test_macrogroup(self):
response = client.get(url)
self.assertEqual(response.status_code, 200)
jcontent = json.loads(response.content)
self.assertEqual(len(jcontent), 3)
self.assertEqual(jcontent[2]['name'], 'Group33')
self.assertEqual(len(jcontent), 2)
self.assertEqual(jcontent[1]['name'], 'Group33')

client.logout()

Expand Down
2 changes: 1 addition & 1 deletion g3w-admin/client/static/client/js/app.min.js

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions g3w-admin/core/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,9 @@ def to_representation(self, instance):
mapcontrol.name: options
})

# Macrogroups
ret['macrogroup_id'] = [macrogroup.id for macrogroup in instance.macrogroups.all()]

return ret

class Meta:
Expand Down
2 changes: 1 addition & 1 deletion g3w-admin/qplotly/static/qplotly/js/plugin.js

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions g3w-admin/qplotly/vendor/DataPlotly/core/plot_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ def read_xml(self, element: QDomElement) -> bool:
self.source_layer_id = res.get('source_layer_id', None)
self.data_defined_properties.loadVariant(res.get('dynamic_properties', None), PlotSettings.DYNAMIC_PROPERTIES)

# With QGIS > 3.28 the QgsXmlutils.readVariant method has a new behavior for Qstring type parameters
if self.layout['title'] == None:
self.layout['title'] = ''

return True

def write_to_project(self, document: QDomDocument):
Expand Down
Loading