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:
33
seahub/dtable/migrations/0002_auto.py
Normal file
33
seahub/dtable/migrations/0002_auto.py
Normal 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')]),
|
||||
),
|
||||
]
|
@@ -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'
|
||||
|
Reference in New Issue
Block a user