from django.db import models from grapple.models import GraphQLStreamfield, GraphQLString from wagtail import blocks from wagtail.admin.panels import FieldPanel from wagtail.fields import StreamField from wagtail.images.blocks import ImageChooserBlock from wagtail.models import Page class EventIndex(Page): # there can only be one event index page max_count = 1 graphql_fields = [] class EventPage(Page): # no children subpage_types = [] # author = models.CharField(max_length=255) # date = models.DateField("Post date") body = StreamField( [ ("heading", blocks.CharBlock(form_classname="title")), ("paragraph", blocks.RichTextBlock()), ("image", ImageChooserBlock()), ] ) content_panels = Page.content_panels + [ # FieldPanel('author'), # FieldPanel('date'), FieldPanel("body"), ] graphql_fields = [ GraphQLString("heading"), # GraphQLString("date"), # GraphQLString("author"), GraphQLStreamfield("body"), ] class EventOccurrence(models.Model): event = models.ForeignKey(EventPage, on_delete=models.CASCADE, related_name="occurrences") sample_legacy_event_json = """ { "id": 64573, "date": "2023-12-27T11:28:34", "date_gmt": "2023-12-27T10:28:34", "guid": { "rendered": "https://studentersamfundet.no/?post_type=event&p=64573" }, "modified": "2023-12-27T11:44:11", "modified_gmt": "2023-12-27T10:44:11", "slug": "quiz-147-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-3-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-3-2-2-2-2-2-2-2-2-2-2-2-2-2", "status": "publish", "type": "event", "link": "https://studentersamfundet.no/arrangement/quiz-147-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-3-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-3-2-2-2-2-2-2-2-2-2-2-2-2-2/", "title": { "rendered": "QUIZ", "decoded": "QUIZ" }, "content": { "rendered": "\n
Det Norske Studentersamfund inviterer til quiz hver tirsdag kl. 19:00.
\n\n\n\nVi serverer 50 spørsmål som kan spenne seg fra one hit wonders fra 80-tallet, universets uendelighet, dyrelivets merkverdigheter og mye, mye mer!
\n\n\n\nQuiz på Chateau Neuf er åpent for alle. Vinnere og “lucky losers” vil bli utnevnt hver kveld. Lag som er over seks personer er tillatt, men da trekkes dere for ett poeng per deltaker per runde.
\n\n\n\nFor de som ønsker å være med på sammenlagtkonkurransen for høsten vil den regnes ut for de tolv beste prestasjonene laget leverer. Så det vil fremdeles være god sjanse for å vinne sammenlagt selv dere må droppe en quiz eller to for eksamener eller andre forpliktelser.
\n\n\n\nVelkommen quizglade mennesker!
\n\n\n\nGratis inngang!
\n", "protected": false }, "excerpt": { "rendered": "Det Norske Studentersamfund inviterer til quiz hver tirsdag kl. 19:00. Vi serverer 50 spørsmål som kan spenne seg fra one hit wonders fra 80-tallet, universets uendelighet, dyrelivets merkverdigheter og mye, mye mer! Quiz på Chateau Neuf er åpent for alle. Vinnere og “lucky losers” vil bli utnevnt hver kveld. Lag som er over seks personer […]
\n", "protected": false }, "author": 2150, "featured_media": 64585, "template": "", "meta": [], "event_types": [13], "event_organizers": [390, 322], "facebook_url": "https://fb.me/e/2RDR5pZdr", "ticket_url": "", "price_regular": "", "price_member": "", "start_time": "2024-05-07T17:00:00+00:00", "end_time": "2024-05-07T20:00:00+00:00", "venue": "Glassbaren", "venue_id": "55063", "thumbnail": { "thumbnail": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-150x150.png", "medium": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-300x169.png", "medium_large": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-768x433.png", "large": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-1280x720.png", "1536x1536": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-1536x865.png", "2048x2048": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1.png", "four-column": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-393x342.png", "six-column": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-608x342.png", "extra-large": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-1600x901.png", "newsletter-half": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-320x190.png", "newsletter-third": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-213x126.png", "featured": "https://studentersamfundet.no/wp/wp-content/uploads/2023/12/quiz-header-1-1200x480.png" }, "_links": { "self": [ { "href": "https://studentersamfundet.no/wp-json/wp/v2/events/64573" } ], "collection": [ { "href": "https://studentersamfundet.no/wp-json/wp/v2/events" } ], "about": [ { "href": "https://studentersamfundet.no/wp-json/wp/v2/types/event" } ], "author": [ { "embeddable": true, "href": "https://studentersamfundet.no/wp-json/wp/v2/users/2150" } ], "version-history": [ { "count": 1, "href": "https://studentersamfundet.no/wp-json/wp/v2/events/64573/revisions" } ], "predecessor-version": [ { "id": 64574, "href": "https://studentersamfundet.no/wp-json/wp/v2/events/64573/revisions/64574" } ], "wp:featuredmedia": [ { "embeddable": true, "href": "https://studentersamfundet.no/wp-json/wp/v2/media/64585" } ], "wp:attachment": [ { "href": "https://studentersamfundet.no/wp-json/wp/v2/media?parent=64573" } ], "wp:term": [ { "taxonomy": "event_type", "embeddable": true, "href": "https://studentersamfundet.no/wp-json/wp/v2/event_types?post=64573" }, { "taxonomy": "event_organizer", "embeddable": true, "href": "https://studentersamfundet.no/wp-json/wp/v2/event_organizers?post=64573" } ], "curies": [ { "name": "wp", "href": "https://api.w.org/{rel}", "templated": true } ] } } """