# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2017-06-14 23:07
from __future__ import unicode_literals

from django.db import migrations, models
from django.contrib.auth.models import Group

def create_default_groups(apps, schema_editor):
    # Set up default groups
    Group.objects.get_or_create(name="moderator")
    Group.objects.get_or_create(name="admin")
    staff, created = Group.objects.get_or_create(name="staff")
    EmailUser = apps.get_model('users', 'EmailUser')

    # Add any is_staff user to the staff group
    users = EmailUser.objects.all()
    for user in users:
        if user.is_staff is True:
            staff.user_set.add(user)

class Migration(migrations.Migration):

    dependencies = [
        ('auth', '0008_alter_user_username_max_length'),
        ('users', '0001_initial'),
    ]

    operations = [
        migrations.AddField(
            model_name='emailuser',
            name='groups',
            field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups'),
        ),
        migrations.AddField(
            model_name='emailuser',
            name='is_superuser',
            field=models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status'),
        ),
        # This field isn't actually used by anything, and is autogenerated by the auth system when adding groups
        migrations.AddField(
            model_name='emailuser',
            name='user_permissions',
            field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
        ),
        migrations.RunPython(create_default_groups),
    ]
