Exemplo n.º 1
0
class Post(db.Document):

    page_id = db.StringField()
    author = db.ReferenceField(User, reverse_delete_rule=db.CASCADE)
    creation_date = db.DateTimeField(default=datetime.utcnow())
    published = db.BooleanField(default=False)
    weight = db.IntField(min_value=0, default=0)
    slug = db.StringField(max_length=128, unique=True)
    category = db.ReferenceField(Category)

    title = db.StringField(max_length=128, required=True, unique=True)
    description = db.StringField(max_length=1024)

    featured_image = db.EmbeddedDocumentField(Image)
    detail_images = db.ListField(db.EmbeddedDocumentField(Image))

    meta = {'collection': 'post'}

    def __repr__(self):
        return f'<Post | Title: {self.title} \
            Author:{self.author.username} Slug: {self.slug}>'

    def set_title(self, title):
        self.title = str(title).strip()

    def set_slug(self, title):
        self.slug = slugify(title)

    def set_category(self, id):
        self.category = Category.objects.filter(id=id).first()

    def set_author(self, id):
        self.author = User.objects.filter(id=id).first()
Exemplo n.º 2
0
class User(db.Document):
    username = db.StringField(max_length=64, required=True, unique=True)
    email = db.EmailField(max_length=128, required=True, unique=True)
    password_hash = db.StringField(max_length=128, required=True)
    slug = db.StringField(max_length=128)
    role = db.ReferenceField(Role, reverse_delete_rule=db.CASCADE)
    creation_date = db.DateTimeField(default=datetime.utcnow())

    meta = {'collection': 'user'}

    def __repr__(self) -> str:
        return f'<User | username: {self.username}, email: {self.email}>'

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password) -> bool:
        return check_password_hash(self.password_hash, password)

    def set_slug(self, username):
        self.slug = slugify(username)

    def set_username(self, username):
        self.username = (str(username).replace(' ', '')).lower()

    def set_email(self, email):
        self.email = str(email).lower()
Exemplo n.º 3
0
class Role(db.Document):
    name = db.StringField(max_length=64, required=True, unique=True)
    description = db.StringField(max_length=128)

    meta = {'collection': 'role'}

    def __repr__(self) -> str:
        return f'<Role | name: {self.name}, description: {self.description}>'

    def set_name(self, name):
        self.name = (str(name).replace(' ', '')).upper()
Exemplo n.º 4
0
class Category(db.Document):
    name = db.StringField(max_length=128, required=True, unique=True)
    slug = db.StringField(max_length=128, unique=True)
    description = db.StringField(max_length=512)
    creation_date = db.DateTimeField(default=datetime.utcnow())

    meta = {'collection': 'category'}

    def __repr__(self):
        return f'<Category | Name: {self.name} Slug: {self.slug}>'

    def set_slug(self, name):
        self.slug = slugify(name)
Exemplo n.º 5
0
class Tasks(db.Document):
    task = db.StringField(max_length=64, required=True)
    creation_date = db.DateTimeField(default=datetime.utcnow())

    meta = {'collection': 'tasks', 'indexes': ['task', '-creation_date']}

    def __repr__(self) -> str:
        return f'<Task: {self.task}, Date: {self.creation_date}>'
Exemplo n.º 6
0
class Post(db.Document):
    author = db.ReferenceField(User, reverse_delete_rule=db.CASCADE)
    title = db.StringField(max_length=128, required=True)
    slug = db.StringField(max_length=128)
    description = db.StringField(max_length=1024)
    creation_date = db.DateTimeField(default=datetime.utcnow())
    weight = db.IntField(min_value=0)
    category = db.ListField(
        db.ReferenceField(Category, reverse_delete_rule=db.CASCADE))

    meta = {'collection': 'post', 'indexes': ['title', 'slug']}

    def __repr__(self):
        return f'<Post | Title: {self.title} Author:{self.author} \
                 Slug: {self.slug}>'

    def set_slug(self, title):
        return slugify(title)
Exemplo n.º 7
0
class User(db.Document):
    username = db.StringField(max_length=128)
    email = db.EmailField(max_length=128, required=True, unique=True)
    password_hash = db.StringField(max_length=128, required=True)
    creation_date = db.DateTimeField(default=datetime.utcnow())

    meta = {
        'collection': 'user',
        'indexes': ['username', 'email', '-creation_date']
    }

    def __repr__(self) -> str:
        return f'<User: username:{self.username}, emal:{self.email}>'

    def set_password(self, password) -> None:
        self.password_hash = generate_password_hash(password)

    def get_password(self, password) -> bool:
        return check_password_hash(self.password_hash, password)
Exemplo n.º 8
0
class Role(db.Document):
    name = db.StringField(max_length=64, required=True, unique=True)
    description = db.StringField()

    meta = {'collection': 'role'}
Exemplo n.º 9
0
class Image(db.EmbeddedDocument):
    name = db.StringField(max_length=128, required=True)
    path = db.StringField(max_length=256, required=True)
Exemplo n.º 10
0
class Comment(db.Document):
    author = db.ReferenceField(User, reverse_delete_rule=db.CASCADE)
    comment = db.StringField(max_length=1024)
    creation_date = db.DateTimeField(default=datetime.utcnow())

    meta = {'collection': 'comment'}