mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 23:02:26 +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),
|
'created_at': datetime_to_isoformat_timestr(self.created_at),
|
||||||
'updated_at': datetime_to_isoformat_timestr(self.updated_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