hide fulfilled wishes from the list, while here set verbose_plural_name and make slug unique in the db.
This commit is contained in:
parent
57dce1f887
commit
57cf6eaf56
25
src/wishlist/migrations/0003_wishlist_slug_unique.py
Normal file
25
src/wishlist/migrations/0003_wishlist_slug_unique.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 3.0.3 on 2020-05-09 12:14
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("wishlist", "0002_auto_20200219_2008"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name="wish", options={"verbose_name_plural": "wishes"},
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="wish",
|
||||||
|
name="slug",
|
||||||
|
field=models.SlugField(
|
||||||
|
blank=True,
|
||||||
|
help_text="The url slug for this wish. Leave blank to autogenerate one.",
|
||||||
|
unique=True,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,8 +1,7 @@
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
|
|
||||||
from utils.models import CampRelatedModel
|
from utils.models import CampRelatedModel
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,13 +10,15 @@ class Wish(CampRelatedModel):
|
||||||
This model contains the stuff BornHack needs. This can be anything from kitchen equipment
|
This model contains the stuff BornHack needs. This can be anything from kitchen equipment
|
||||||
to network cables, or anything really.
|
to network cables, or anything really.
|
||||||
"""
|
"""
|
||||||
name = models.CharField(
|
|
||||||
max_length=100,
|
class Meta:
|
||||||
help_text="Short description of the wish",
|
verbose_name_plural = "wishes"
|
||||||
)
|
|
||||||
|
name = models.CharField(max_length=100, help_text="Short description of the wish",)
|
||||||
|
|
||||||
slug = models.SlugField(
|
slug = models.SlugField(
|
||||||
blank=True,
|
blank=True,
|
||||||
|
unique=True,
|
||||||
help_text="The url slug for this wish. Leave blank to autogenerate one.",
|
help_text="The url slug for this wish. Leave blank to autogenerate one.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,10 +26,7 @@ class Wish(CampRelatedModel):
|
||||||
help_text="Description of the needed item. Markdown is supported!"
|
help_text="Description of the needed item. Markdown is supported!"
|
||||||
)
|
)
|
||||||
|
|
||||||
count = models.IntegerField(
|
count = models.IntegerField(default=1, help_text="How many do we need?",)
|
||||||
default=1,
|
|
||||||
help_text="How many do we need?",
|
|
||||||
)
|
|
||||||
|
|
||||||
fulfilled = models.BooleanField(
|
fulfilled = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
|
@ -59,7 +57,7 @@ class Wish(CampRelatedModel):
|
||||||
super().save(**kwargs)
|
super().save(**kwargs)
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse("wishlist:detail", kwargs={
|
return reverse(
|
||||||
"camp_slug": self.camp.slug,
|
"wishlist:detail",
|
||||||
"wish_slug": self.slug,
|
kwargs={"camp_slug": self.camp.slug, "wish_slug": self.slug,},
|
||||||
})
|
)
|
||||||
|
|
|
@ -7,6 +7,10 @@ class WishListView(ListView):
|
||||||
model = Wish
|
model = Wish
|
||||||
template_name = "wish_list.html"
|
template_name = "wish_list.html"
|
||||||
|
|
||||||
|
def get_queryset(self, **kwargs):
|
||||||
|
# only show unfulfilled wishes
|
||||||
|
return super().get_queryset().filter(fulfilled=False)
|
||||||
|
|
||||||
|
|
||||||
class WishDetailView(DetailView):
|
class WishDetailView(DetailView):
|
||||||
model = Wish
|
model = Wish
|
||||||
|
|
Loading…
Reference in a new issue