models: Create DefaultStreamGroup.

This commit is contained in:
Vishnu Ks
2017-10-12 17:35:14 +00:00
committed by Tim Abbott
parent ae9d686d26
commit 4f00170735
2 changed files with 46 additions and 0 deletions

View 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')]),
),
]

View File

@@ -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