Enhance Article editor

This commit is contained in:
2026-03-25 12:45:07 -04:00
parent dfdbb54875
commit 3ba7eae390
5 changed files with 677 additions and 53 deletions
+24
View File
@@ -262,3 +262,27 @@ class KnowledgeBase(db.Model):
def __repr__(self):
return f'<KnowledgeBase {self.title}>'
class KBAttachment(db.Model):
"""Files and images attached to a Knowledge Base article."""
__tablename__ = 'kb_attachments'
id = db.Column(db.Integer, primary_key=True)
article_id = db.Column(db.Integer, db.ForeignKey('knowledge_base.id'), nullable=False)
filename = db.Column(db.String(256), nullable=False) # original name
stored_name = db.Column(db.String(256), nullable=False) # UUID-based on disk
mime_type = db.Column(db.String(100))
file_size = db.Column(db.Integer)
uploaded_by = db.Column(db.Integer, db.ForeignKey('users.id'))
uploaded_at = db.Column(db.DateTime, default=datetime.utcnow)
article = db.relationship('KnowledgeBase', backref=db.backref('attachments', lazy='dynamic', cascade='all, delete-orphan'))
uploader = db.relationship('User', foreign_keys=[uploaded_by])
@property
def url(self):
return f'/admin/kb/files/{self.stored_name}'
def __repr__(self):
return f'<KBAttachment {self.filename}>'