1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-26 15:26:19 +00:00
Files
seahub/seahub/seadoc/models.py
欢乐马 643b282b34 sdoc-draft (#5512)
* sdoc-draft

* seadoc_mask_as_draft

* SeadocDraft

* doc_uuid delete
2023-06-20 21:18:07 +08:00

73 lines
2.1 KiB
Python

from django.db import models
from seahub.utils.timeutils import datetime_to_isoformat_timestr
class SeadocHistoryNameManager(models.Manager):
def update_name(self, doc_uuid, obj_id, name):
if self.filter(doc_uuid=doc_uuid, obj_id=obj_id).exists():
obj = self.filter(doc_uuid=doc_uuid, obj_id=obj_id).update(name=name)
else:
obj = self.create(doc_uuid=doc_uuid, obj_id=obj_id, name=name)
return obj
def list_by_obj_ids(self, doc_uuid, obj_id_list):
return self.filter(doc_uuid=doc_uuid, obj_id__in=obj_id_list)
class SeadocHistoryName(models.Model):
doc_uuid = models.CharField(max_length=36, db_index=True)
obj_id = models.CharField(max_length=40)
name = models.CharField(max_length=255)
objects = SeadocHistoryNameManager()
class Meta:
db_table = 'history_name'
unique_together = ('doc_uuid', 'obj_id')
def to_dict(self):
return {
'id': self.pk,
'doc_uuid': self.doc_uuid,
'obj_id': self.obj_id,
'name': self.name,
}
class SeadocDraftManager(models.Manager):
def get_by_doc_uuid(self, doc_uuid):
return self.filter(doc_uuid=doc_uuid).first()
def mask_as_draft(self, doc_uuid, username):
return self.create(doc_uuid=doc_uuid, username=username)
def unmask_as_draft(self, doc_uuid):
return self.filter(doc_uuid=doc_uuid).delete()
def list_by_doc_uuids(self, doc_uuid_list):
return self.filter(doc_uuid__in=doc_uuid_list)
def list_by_username(self, username):
return self.filter(username=username)
class SeadocDraft(models.Model):
doc_uuid = models.CharField(max_length=36, unique=True)
username = models.CharField(max_length=255, db_index=True)
created_at = models.DateTimeField(auto_now_add=True)
objects = SeadocDraftManager()
class Meta:
db_table = 'sdoc_draft'
def to_dict(self):
return {
'id': self.pk,
'doc_uuid': self.doc_uuid,
'username': self.username,
'created_at': datetime_to_isoformat_timestr(self.created_at),
}