52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
"""This modules declares the model for Comic related information."""
|
|
|
|
from flask import current_app
|
|
from pymongo.write_concern import WriteConcern
|
|
from pymodm import MongoModel, fields
|
|
|
|
|
|
class Publisher(MongoModel):
|
|
"""Class Publisher represents a publisher of a comic."""
|
|
name = fields.CharField()
|
|
|
|
def __str__(self):
|
|
return "Publisher({})".format(self.name)
|
|
|
|
@property
|
|
def comics(self):
|
|
"""
|
|
Return list of comics which has reference to this publisher
|
|
:return:
|
|
"""
|
|
comics = Comic.objects.raw({'publisher': self.pk})
|
|
current_app.logger.debug(comics)
|
|
return comics
|
|
|
|
class Meta:
|
|
"""Sets the connection and connections details."""
|
|
connection_alias = 'kontor'
|
|
write_concern = WriteConcern(j=True)
|
|
|
|
|
|
class Artist(MongoModel):
|
|
"""Class Artist represents a comic artist."""
|
|
name = fields.CharField()
|
|
|
|
class Meta:
|
|
"""Sets the connection and connections details."""
|
|
connection_alias = 'kontor'
|
|
write_concern = WriteConcern(j=True)
|
|
|
|
|
|
class Comic(MongoModel):
|
|
"""Class Comic represents a comic."""
|
|
title = fields.CharField()
|
|
publisher = fields.ReferenceField(Publisher)
|
|
current_order = fields.BooleanField(default=False)
|
|
completed = fields.BooleanField(default=False)
|
|
|
|
class Meta:
|
|
"""Sets the connection and connections details."""
|
|
connection_alias = 'kontor'
|
|
write_concern = WriteConcern(j=True)
|