# -*- 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), ]