mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
models: Create DefaultStreamGroup.
This commit is contained in:
29
zerver/migrations/0113_default_stream_group.py
Normal file
29
zerver/migrations/0113_default_stream_group.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.5 on 2017-10-14 15:12
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('zerver', '0112_index_muted_topics'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='DefaultStreamGroup',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(db_index=True, max_length=60)),
|
||||
('realm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm')),
|
||||
('streams', models.ManyToManyField(to='zerver.Stream')),
|
||||
],
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='defaultstreamgroup',
|
||||
unique_together=set([('realm', 'name')]),
|
||||
),
|
||||
]
|
||||
@@ -1743,6 +1743,23 @@ class DefaultStream(models.Model):
|
||||
class Meta(object):
|
||||
unique_together = ("realm", "stream")
|
||||
|
||||
class DefaultStreamGroup(models.Model):
|
||||
MAX_NAME_LENGTH = 60
|
||||
name = models.CharField(max_length=MAX_NAME_LENGTH, db_index=True) # type: Text
|
||||
realm = models.ForeignKey(Realm, on_delete=CASCADE) # type: Realm
|
||||
streams = models.ManyToManyField('Stream') # type: Manager
|
||||
|
||||
class Meta(object):
|
||||
unique_together = ("realm", "name")
|
||||
|
||||
def to_dict(self):
|
||||
# type: () -> Dict[str, Any]
|
||||
return dict(name=self.name, streams=[stream.to_dict() for stream in self.streams.all()])
|
||||
|
||||
def get_default_stream_groups(realm):
|
||||
# type: (Realm) -> List[DefaultStreamGroup]
|
||||
return DefaultStreamGroup.objects.filter(realm=realm)
|
||||
|
||||
class AbstractScheduledJob(models.Model):
|
||||
scheduled_timestamp = models.DateTimeField(db_index=True) # type: datetime.datetime
|
||||
# JSON representation of arguments to consumer
|
||||
|
||||
Reference in New Issue
Block a user