Created
August 15, 2019 15:52
-
-
Save bradrice/00dedcf4cabfc7b55a188cc88811896f to your computer and use it in GitHub Desktop.
snippets for resources
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.db import models | |
from django.shortcuts import render | |
from modelcluster.fields import ParentalKey | |
from wagtail.core.models import Page, Orderable | |
from wagtail.core.fields import RichTextField | |
from wagtail.admin.edit_handlers import ( | |
FieldPanel, | |
PageChooserPanel, | |
MultiFieldPanel, | |
InlinePanel | |
) | |
from wagtail.images.edit_handlers import ImageChooserPanel | |
from wagtail.snippets.edit_handlers import SnippetChooserPanel | |
from wagtail.contrib.routable_page.models import RoutablePageMixin, route | |
from wagtail.snippets.models import register_snippet | |
import uuid | |
class Resource(models.Model): | |
"""Snippet for Resources""" | |
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) | |
resource_name = models.CharField(max_length=128, blank=False, null=True) | |
phone_number = models.CharField(max_length=12, blank=True, null=True) | |
website = models.URLField(blank=True, null=True) | |
info = RichTextField(blank=True, null=True) | |
panels = [ | |
MultiFieldPanel( | |
[ | |
FieldPanel("resource_name"), | |
FieldPanel("phone_number"), | |
], | |
heading="Resource information" | |
), | |
MultiFieldPanel( | |
[ | |
FieldPanel('website') | |
], | |
heading="Links" | |
), | |
MultiFieldPanel( | |
[ | |
FieldPanel('info') | |
], | |
heading="Info" | |
), | |
MultiFieldPanel( | |
[ | |
InlinePanel("category") | |
] | |
) | |
] | |
def __str__(self): | |
"""String representation of this class""" | |
return self.resource_name | |
class Meta: | |
verbose_name = "Resource" | |
verbose_name_plural = "Resources" | |
register_snippet(Resource) | |
class ResourceCatsOrderable(Orderable): | |
"""child category for multiple category choices""" | |
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) | |
resource = ParentalKey('home.Resource', related_name="resource") | |
category = models.ForeignKey('home.ResourceCategory', on_delete=models.CASCADE, null=True, blank=True) | |
panels = [ | |
SnippetChooserPanel("category") | |
] | |
class ResourceCategory(models.Model): | |
"""Snippet for Resources""" | |
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) | |
category_name = models.CharField(max_length=128, blank=False, null=True) | |
panels = [ | |
MultiFieldPanel( | |
[ | |
FieldPanel('category_name') | |
], | |
heading="Category" | |
) | |
] | |
def __str__(self): | |
"""String representation of this class""" | |
return self.category_name | |
class Meta: | |
verbose_name = "Category" | |
verbose_name_plural = "Categories" | |
register_snippet(ResourceCategory) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment