Skip to content

Commit 21e1e63

Browse files
authored
Merge pull request #165 from OpenUpSA/order_point_theme_and_category
Add order field to Point Theme and Profile Category
2 parents f334b8e + 52dccbf commit 21e1e63

File tree

5 files changed

+61
-8
lines changed

5 files changed

+61
-8
lines changed

wazimap_ng/points/admin/profilecategory_admin.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from adminsortable2.admin import SortableAdminMixin
12
from django.contrib.gis import admin
23
from django import forms
34

@@ -17,8 +18,8 @@ def __init__(self, *args, **kwargs):
1718

1819

1920
@admin.register(models.ProfileCategory)
20-
class ProfileCategoryAdmin(BaseAdminModel):
21-
list_display = ("label", "theme", "category", "profile")
21+
class ProfileCategoryAdmin(SortableAdminMixin, BaseAdminModel):
22+
list_display = ("label", "theme", "order", "category", "profile")
2223
list_filter = (filters.ProfileFilter, filters.ThemeFilter, filters.CollectionFilter)
2324

2425
fieldsets = (

wazimap_ng/points/admin/theme_admin.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1+
from adminsortable2.admin import SortableAdminMixin
12
from django.contrib.gis import admin
23
from django import forms
34

45
from wazimap_ng.general.admin.admin_base import BaseAdminModel
56
from wazimap_ng.general.admin import filters
6-
from wazimap_ng.profile.models import Profile
77

88
from icon_picker_widget.widgets import IconPickerWidget
99

1010
from .. import models
1111

12+
1213
class ThemeAdminForm(forms.ModelForm):
1314
def __init__(self, *args, **kwargs):
1415
super().__init__(*args, **kwargs)
1516
self.fields['icon'].widget = IconPickerWidget()
1617

1718

1819
@admin.register(models.Theme)
19-
class ThemeAdmin(BaseAdminModel):
20-
list_display = ("name", "profile",)
20+
class ThemeAdmin(SortableAdminMixin, BaseAdminModel):
21+
list_display = ("name", "profile", "order")
2122
list_filter = (filters.ProfileFilter,)
2223

2324
form = ThemeAdminForm
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Generated by Django 2.2.13 on 2020-11-17 15:59
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('points', '0037_auto_20200928_2309'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='profilecategory',
15+
name='order',
16+
field=models.PositiveIntegerField(default=0),
17+
),
18+
migrations.AddField(
19+
model_name='theme',
20+
name='order',
21+
field=models.PositiveIntegerField(default=0),
22+
),
23+
migrations.AlterModelOptions(
24+
name='profilecategory',
25+
options={'ordering': ['order'], 'verbose_name': 'Profile Collection',
26+
'verbose_name_plural': 'Profile Collections'},
27+
),
28+
migrations.AlterModelOptions(
29+
name='theme',
30+
options={'ordering': ['order']},
31+
),
32+
]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Generated by Django 2.2.13 on 2021-01-11 18:07
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('points', '0038_auto_20201117_1559'),
10+
('points', '0039_profilecategory_color'),
11+
]
12+
13+
operations = [
14+
]

wazimap_ng/points/models.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import os
2-
import uuid
32

43
from django.contrib.gis.db import models
54
from django.contrib.postgres.fields import JSONField
@@ -11,26 +10,28 @@
1110
from wazimap_ng.profile.models import Profile
1211
from django_q.models import Task
1312
from wazimap_ng import utils
14-
from wazimap_ng.datasets.models import Licence
1513
from wazimap_ng.general.models import BaseModel
1614
from wazimap_ng.config.common import PERMISSION_TYPES
1715
from colorfield.fields import ColorField
1816

1917

18+
2019
def get_file_path(instance, filename):
2120
filename = utils.get_random_filename(filename)
2221
return os.path.join('points', filename)
2322

23+
2424
class Theme(BaseModel):
2525
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True)
2626
name = models.CharField(max_length=30)
2727
icon = models.CharField(max_length=30, null=True, blank=True)
28+
order = models.PositiveIntegerField(default=0, blank=False, null=False)
2829

2930
def __str__(self):
3031
return f"{self.profile} | {self.name}"
3132

3233
class Meta:
33-
ordering = ["profile__name"]
34+
ordering = ["order"]
3435

3536

3637
class Category(BaseModel):
@@ -46,6 +47,7 @@ class Meta:
4647
verbose_name = "Collection"
4748
verbose_name_plural = "Collections"
4849

50+
4951
class Location(BaseModel):
5052
name = models.CharField(max_length=255)
5153
category = models.ForeignKey(Category, related_name="locations", on_delete=models.CASCADE, verbose_name="collection")
@@ -70,6 +72,7 @@ class ProfileCategory(BaseModel):
7072
label = models.CharField(max_length=60, null=False, blank=True, help_text="Label for the category to be displayed on the front-end")
7173
description = models.TextField(blank=True)
7274
icon = models.CharField(max_length=30, null=True, blank=True)
75+
order = models.PositiveIntegerField(default=0, blank=False, null=False)
7376
color = ColorField(blank=True)
7477

7578
def __str__(self):
@@ -78,6 +81,8 @@ def __str__(self):
7881
class Meta:
7982
verbose_name = "Profile Collection"
8083
verbose_name_plural = "Profile Collections"
84+
ordering = ["order"]
85+
8186

8287
class CoordinateFile(BaseModel):
8388
document = models.FileField(

0 commit comments

Comments
 (0)