Skip to content

Commit

Permalink
add collection flag,field and api
Browse files Browse the repository at this point in the history
This commit introduces collection flag,field for filtering posts based on collections and feed
  • Loading branch information
govindgoel committed Mar 3, 2021
1 parent f225e3e commit ca5ec40
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
13 changes: 12 additions & 1 deletion activity/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ class CategoryAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin)
}),
]

@admin.register(Collection)
class CollectionAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin):
fieldsets = [
('Basic Details', {
'fields': [
('name', 'author','date'),
]
}),
]


@admin.register(Blog)
class BlogAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin):
Expand All @@ -52,7 +62,8 @@ class BlogAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin):
'fields': [
('title', 'slug'),
('author', 'date', 'cover'),
('draft', 'featured', 'tags', 'category'),
('draft', 'featured','tags', 'category'),
('collection'),
'description'
]
}),
Expand Down
12 changes: 12 additions & 0 deletions activity/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ class Meta:
def __str__(self):
return self.name

class Collection(models.Model):
name = models.CharField(max_length=100)
author = models.ForeignKey(User, on_delete=models.PROTECT, related_name='Collection_Author', blank=True, null=True)
date = models.DateField(default=date.today)

class Meta:
verbose_name_plural = "Collections"
verbose_name = "Collection"

def __str__(self):
return self.name

class Tag(models.Model):
name = models.CharField(max_length=100)
Expand Down Expand Up @@ -69,6 +80,7 @@ def get_blog_poster_path(self, filename):
cover = ProcessedImageField(default='', verbose_name='Blog Poster', upload_to=get_blog_poster_path, validators=[validate_file_size], **processed_image_field_specs)
description = RichTextField(null=True, blank=True)
featured = models.BooleanField(null=True, default=False)
collection = models.ForeignKey(Collection, on_delete=models.PROTECT, related_name='blog_collection', blank=True, null=True)
tags = models.ManyToManyField(Tag, related_name='blog_tags')
draft = models.CharField(max_length=400, verbose_name='Blog Post Draft URL', null=True, blank=True)
category = models.ForeignKey(Category, on_delete=models.PROTECT, related_name='blog_category', blank=True, null=True)
Expand Down
21 changes: 21 additions & 0 deletions activity/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,19 @@ def resolve_name(self, info):
def resolve_author(self, info):
return User.objects.values().get(id=self['author_id'])

class CollectionTagObj(graphene.ObjectType):
name = graphene.String()
author = graphene.Field(UserBasicObj)
date = graphene.Date(required=True)

def resolve_name(self, info):
return self['name']

def resolve_author(self, info):
return User.objects.values().get(id=self['author_id'])

def resolve_date(self, info):
return self['date']

class TagObj(graphene.ObjectType):
name = graphene.String()
Expand Down Expand Up @@ -74,6 +87,7 @@ class BlogObj(graphene.ObjectType):
description = graphene.String(required=True)
cover = graphene.String(required=True)
category = graphene.Field(CategoryObj)
collection = graphene.Field(CollectionTagObj)

def resolve_title(self, info):
return self['title']
Expand Down Expand Up @@ -107,6 +121,9 @@ def resolve_cover(self, info):

def resolve_category(self, info):
return Category.objects.values().get(id=self['category_id'])

def resolve_collection(self, info):
return Collection.objects.values().get(id=self['collection_id'])


class AchievementObj(graphene.ObjectType):
Expand Down Expand Up @@ -171,6 +188,7 @@ class Query(graphene.ObjectType):
getNews = graphene.Field(NewsObj, slug=graphene.String(required=True))
tags = graphene.List(TagObj)
categories = graphene.List(CategoryObj)
collections = graphene.List(CollectionTagObj)
blogs = graphene.List(BlogObj)
blog = graphene.Field(BlogObj, slug=graphene.String(required=True))
achievements = graphene.List(AchievementObj, category=graphene.String(), username=graphene.String())
Expand All @@ -192,6 +210,9 @@ def resolve_tags(self, info):
def resolve_categories(self, info):
return Category.objects.values().all()

def resolve_collections(self, info):
return Collection.objects.values().all()

def resolve_blogs(self, info):
return reversed(Blog.objects.values().filter(featured=True).order_by('date'))

Expand Down

0 comments on commit ca5ec40

Please sign in to comment.