src/ldt/ldt/ldt_utils/migrations/0005_add_permissions.py
changeset 1365 bdf0b7f45431
parent 1364 fb0046d64c82
child 1366 b52d0f2347ab
equal deleted inserted replaced
1364:fb0046d64c82 1365:bdf0b7f45431
     1 #@PydevCodeAnalysisIgnore
       
     2 # encoding: utf-8
       
     3 import datetime
       
     4 from south.db import db
       
     5 from south.v2 import DataMigration
       
     6 from django.db import models
       
     7 from django.conf import settings
       
     8 from ldt.security.command import set_default_permissions
       
     9 
       
    10 
       
    11 class Migration(DataMigration):
       
    12     
       
    13     depends_on = (
       
    14                   ("guardian", "0005_auto__chg_field_groupobjectpermission_object_pk__chg_field_userobjectp"),
       
    15                   ("user", "0004_fill_language"), 
       
    16                   ("user", "0007_auto__add_groupprofile")
       
    17                   )
       
    18 
       
    19     def forwards(self, orm):
       
    20         
       
    21         for model in ["project", "content", "segment", "author", "media"]:
       
    22             self.add_perm(orm, model)  
       
    23             
       
    24         # Run command ./manage.py assignpermissions after this migration    
       
    25 
       
    26     
       
    27     def add_perm(self, orm, model_name):
       
    28         # Since south does not migrate permissions, they need to
       
    29         # be added to the database manually
       
    30         ct, created = orm['contenttypes.ContentType'].objects.get_or_create(model=model_name, app_label='ldt_utils') # model must be lowercase!
       
    31         orm['auth.permission'].objects.get_or_create(content_type=ct, codename='view_%s' % model_name, defaults={'name': 'Can view %s' % model_name })
       
    32    
       
    33     def backwards(self, orm):
       
    34         "Write your backwards methods here."
       
    35 
       
    36 
       
    37     models = {
       
    38         'auth.group': {
       
    39             'Meta': {'object_name': 'Group'},
       
    40             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    41             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
       
    42             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
       
    43         },
       
    44         'auth.message': {
       
    45             'Meta': {'object_name': 'Message'},
       
    46             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    47             'message': ('django.db.models.fields.TextField', [], {}),
       
    48             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'_message_set'", 'to': "orm['auth.User']"})
       
    49         },
       
    50         'auth.permission': {
       
    51             'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
       
    52             'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    53             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
       
    54             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    55             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
       
    56         },
       
    57         'auth.user': {
       
    58             'Meta': {'object_name': 'User'},
       
    59             'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    60             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
       
    61             'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    62             'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
       
    63             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    64             'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
       
    65             'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
       
    66             'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
       
    67             'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    68             'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    69             'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
       
    70             'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
       
    71             'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
       
    72         },
       
    73         'contenttypes.contenttype': {
       
    74             'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
       
    75             'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    76             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    77             'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    78             'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
       
    79         },
       
    80         'ldt_utils.author': {
       
    81             'Meta': {'object_name': 'Author'},
       
    82             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
       
    83             'firstname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
       
    84             'handle': ('django.db.models.fields.CharField', [], {'max_length': '512', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
       
    85             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    86             'lastname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'})
       
    87         },
       
    88         'ldt_utils.content': {
       
    89             'Meta': {'ordering': "['title']", 'object_name': 'Content'},
       
    90             'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Author']", 'symmetrical': 'False', 'blank': 'True'}),
       
    91             'content_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
       
    92             'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
    93             'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
       
    94             'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
    95             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    96             'iri_id': ('django.db.models.fields.CharField', [], {'default': "u'b6e0454f-174c-11e1-af90-001485352c9a'", 'unique': 'True', 'max_length': '1024'}),
       
    97             'iriurl': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
    98             'media_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Media']", 'null': 'True', 'blank': 'True'}),
       
    99             'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}),
       
   100             'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   101             'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
       
   102         },
       
   103         'ldt_utils.media': {
       
   104             'Meta': {'object_name': 'Media'},
       
   105             'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   106             'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
       
   107             'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
       
   108             'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
       
   109             'external_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   110             'external_permalink': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   111             'external_publication_url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   112             'external_src_url': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   113             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   114             'media_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
       
   115             'mimetype_field': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
       
   116             'src': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}),
       
   117             'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   118             'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
   119             'videopath': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'})
       
   120         },
       
   121         'ldt_utils.project': {
       
   122             'Meta': {'ordering': "['title']", 'object_name': 'Project'},
       
   123             'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}),
       
   124             'contents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Content']", 'symmetrical': 'False'}),
       
   125             'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}),
       
   126             'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   127             'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
       
   128             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   129             'ldt': ('django.db.models.fields.TextField', [], {'null': 'True'}),
       
   130             'ldt_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}),
       
   131             'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
   132             'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
       
   133             'state': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
       
   134             'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'})
       
   135         },
       
   136         'ldt_utils.segment': {
       
   137             'Meta': {'unique_together': "(('project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'),)", 'object_name': 'Segment'},
       
   138             'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
       
   139             'author': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   140             'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Content']"}),
       
   141             'cutting_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
   142             'date': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
       
   143             'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
       
   144             'element_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
   145             'ensemble_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
   146             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   147             'iri_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
   148             'project_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   149             'project_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Project']", 'null': 'True'}),
       
   150             'start_ts': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
       
   151             'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}),
       
   152             'title': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'})
       
   153         }
       
   154     }
       
   155 
       
   156     complete_apps = ['ldt_utils']