1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-25 06:33:48 +00:00

share dtable model

This commit is contained in:
sniper-py
2019-06-26 10:20:35 +08:00
parent 272baa5125
commit 1809be75fc
2 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.15 on 2019-06-26 02:29
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('dtable', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='ShareDTable',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('from_user', models.CharField(db_index=True, max_length=255)),
('to_user', models.CharField(db_index=True, max_length=255)),
('permission', models.CharField(max_length=15)),
('dtable', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dtable.DTables')),
],
options={
'db_table': 'share_dtable',
},
),
migrations.AlterUniqueTogether(
name='sharedtable',
unique_together=set([('dtable', 'to_user')]),
),
]

View File

@@ -150,3 +150,42 @@ class DTables(models.Model):
'created_at': datetime_to_isoformat_timestr(self.created_at),
'updated_at': datetime_to_isoformat_timestr(self.updated_at),
}
class ShareDTableManager(models.Manager):
def list_by_dtable(self, dtable):
return self.filter(dtable=dtable)
def list_by_to_user(self, to_user):
return self.filter(to_user=to_user).select_related('dtable')
def get_by_dtable_and_to_user(self, dtable, to_user):
qs = self.filter(dtable=dtable, to_user=to_user)
if qs.exists():
return qs[0]
return None
def add(self, dtable, from_user, to_user, permission):
obj = self.model(
dtable=dtable, from_user=from_user, to_user=to_user, permission=permission)
obj.save()
return obj
class ShareDTable(models.Model):
"""Model used to share dtable
from_user, to_user: user email or group_id@seafile_group
"""
id = models.BigAutoField(primary_key=True)
dtable = models.ForeignKey(DTables, on_delete=models.CASCADE)
from_user = models.CharField(max_length=255, db_index=True)
to_user = models.CharField(max_length=255, db_index=True)
permission = models.CharField(max_length=15)
objects = ShareDTableManager()
class Meta:
unique_together = (('dtable', 'to_user'),)
db_table = 'share_dtable'