# -*- coding: utf-8 -*- # Generated by Django 1.10.8 on 2018-02-02 12:18 from __future__ import unicode_literals from django.contrib.auth.models import Permission from django.db import migrations def delete_old_comment_permission(apps, schema_editor): """ Deletes the old 'can_see_and_manage_comments' permission which is split up into two seperate permissions. """ perm = Permission.objects.filter(codename='can_see_and_manage_comments') if len(perm): perm = perm.get() # Save content_type for manual creation of new permissions. content_type = perm.content_type # Save groups. list() is necessary to evaluate the database query right now. groups = list(perm.group_set.all()) # Delete permission perm.delete() # Create new permission perm_see = Permission.objects.create( codename='can_see_comments', name='Can see comments', content_type=content_type) perm_manage = Permission.objects.create( codename='can_manage_comments', name='Can manage comments', content_type=content_type) for group in groups: group.permissions.add(perm_see) group.permissions.add(perm_manage) group.save() class Migration(migrations.Migration): dependencies = [ ('motions', '0004_motionchangerecommendation_other_description'), ] operations = [ migrations.AlterModelOptions( name='motion', options={ 'default_permissions': (), 'ordering': ('identifier',), 'permissions': ( ('can_see', 'Can see motions'), ('can_create', 'Can create motions'), ('can_support', 'Can support motions'), ('can_see_comments', 'Can see comments'), ('can_manage_comments', 'Can manage comments'), ('can_manage', 'Can manage motions') ), 'verbose_name': 'Motion' }, ), migrations.RunPython( delete_old_comment_permission ), ]