Пример #1
0
class PhotoSerializer(serializers.ModelSerializer):
    """
    """

    tags = TagSerializer(many=True, read_only=True)

    class Meta:
        fields = (
            "created", "description", "id", "image", "modified", "slug",
            "tags", "title",)
        model = Photo
Пример #2
0
class ActivityTagRelationship(models.Model):
    activity = ParentalKey('Activity', related_name='tag_relationship')
    tag = models.ForeignKey(
        'taxonomy.Tag',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
    )

    panels = [FieldPanel('tag')]

    api_fields = [APIField('tag', serializer=TagSerializer())]
Пример #3
0
class PostSerializer(serializers.ModelSerializer):
    """
    """

    tags = TagSerializer(many=True, read_only=True)

    class Meta:
        fields = (
            "body",
            "created",
            "id",
            "modified",
            "slug",
            "subtitle",
            "tags",
            "title",
        )
        model = Post
Пример #4
0
class Asset(ClusterableModel):
    class Meta:
        verbose_name = "Curriculum Asset"
        verbose_name_plural = "Curriculum Assets"

    template = "assets/asset_page.html"

    live = models.BooleanField(verbose_name='Publish',
                               default=False,
                               editable=True)
    slug = models.SlugField(
        null=True,
        blank=True,
    )
    title = models.CharField(max_length=50)
    description = RichTextField(blank=True, null=True)

    asset_link = StreamField([
        ('image', ImageChooserBlock()),
        ('document', DocumentChooserBlock()),
        ('external', blocks.Link()),
        ('google_doc', blocks.GoogleDocEmbed()),
        ('codap', blocks.CODAPEmbed()),
        ('video', blocks.YouTubeBlock()),
        ('embed', EmbedBlock()),
        ('raw_html', wagtail_blocks.RawHTMLBlock()),
    ],
                             null=True,
                             blank=True)
    program = models.ForeignKey(
        'taxonomy.Program',
        on_delete=models.SET_NULL,
        null=True,
        blank=False,
        related_name='+',
    )
    asset_type = models.ForeignKey(
        'taxonomy.AssetType',
        on_delete=models.SET_NULL,
        null=True,
        blank=True,
        related_name='+',
    )
    student_asset = models.BooleanField(null=True)
    student_intro = RichTextField(verbose_name="Copy for the Student Page",
                                  null=True,
                                  blank=True)
    audience = models.ForeignKey(
        'taxonomy.Audience',
        on_delete=models.SET_NULL,
        null=True,
        blank=True,
        related_name='+',
    )
    time_estimate = models.ForeignKey('taxonomy.TimeEstimate',
                                      null=True,
                                      blank=True,
                                      on_delete=models.SET_NULL)

    @property
    def audience(self):
        audience = [n.audience for n in self.audience_relationship.all()]
        return audience

    @property
    def learning_spaces(self):
        learning_spaces = [
            n.learning_space for n in self.learningspace_relationship.all()
        ]
        return tags

    @property
    def tags(self):
        tags = [n.tag for n in self.tag_relationship.all()]
        return tags

    @property
    def topics(self):
        topics = [n.topic for n in self.topic_relationship.all()]
        return topics

    def __str__(self):
        return self.title

    panels = [
        FieldPanel("live"),
        FieldPanel('slug'),  # SETH
        FieldPanel("title"),
        FieldPanel("description"),
        FieldPanel("asset_type"),
        FieldPanel("student_asset"),
        FieldPanel("student_intro"),
        StreamFieldPanel('asset_link'),
        SnippetChooserPanel("program"),
        SnippetChooserPanel('time_estimate'),
        InlinePanel('audience_relationship', label="Audience"),
        InlinePanel('learning_space', label="Learning Space"),
        InlinePanel('standards_relationship', label="Standards Alignment"),
        InlinePanel('topic_relationship', label="Topics"),
        InlinePanel('tag_relationship', label="Tags"),
    ]

    api_fields = [
        APIField("live"),
        APIField("description"),
        APIField("student_asset"),
        APIField("asset_link"),
        APIField("program", serializer=ProgramSerializer()),
        APIField("audience", serializer=AudienceSerializer()),
        APIField("asset_type", serializer=AssetTypeSerializer()),
        APIField("topic", serializer=TopicSerializer()),
        APIField('asset_tag_relationship', serializer=TagSerializer()),
        APIField("learning_space", serializer=LearningSpaceSerializer())
    ]