web/ldt/ldt_utils/models.py
author samuel huron <admin@cybunk.com>
Thu, 17 Jun 2010 15:04:36 +0200
changeset 54 24397932219d
parent 16 b3692a42ac79
child 57 3a3c15c462f8
permissions -rw-r--r--
Merge test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.db import models
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
from django.conf import settings
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
from ldt.core.models import Document, Owner
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
from django.utils.translation import ugettext_lazy as _
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
     5
from utils import create_ldt, copy_ldt, create_empty_iri, update_iri
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
     6
import os.path
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
import uuid
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
     8
import xml
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
class Author(models.Model):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    handle = models.CharField(max_length=512, unique=True, blank=True, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    email = models.EmailField(unique=False, blank=True, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    firstname = models.CharField(max_length=512, blank=True, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    lastname = models.CharField(max_length=512, blank=True, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    def __unicode__(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        return unicode(self.id) + " - " + self.handle + ", " + self.email + ", " + self.firstname + " " + self.lastname
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
class Content(models.Model):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    iri_id = models.CharField(max_length=1024, unique=True)
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    23
    iriurl = models.CharField(max_length=1024)
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    24
    src = models.CharField(max_length=1024)
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    25
    videopath = models.CharField(max_length=1024, null=True, blank=True)
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    creation_date = models.DateTimeField(auto_now_add=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    update_date = models.DateTimeField(auto_now=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    title = models.CharField(max_length=1024, null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    description = models.TextField(null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    external_id = models.CharField(max_length=1024, null=True, blank=True)
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    31
    authors = models.ManyToManyField(Author, blank=True)
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    duration = models.IntegerField(null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    def get_duration(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        if self.duration is None:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
            doc = xml.dom.minidom.parse(self.iri_file_path())
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
            doc = Ft.Xml.Domlette.ConvertDocument(doc)        
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            con = xml.xpath.Context.Context(doc, 1, 1, None)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
            res = xml.xpath.Evaluate("/iri/body/medias/media[@id='video']/video", context=con)
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    40
            self.duration = int(res[0].getAttributeNS(None, u'dur'))
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            self.save()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        return self.duration
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    def delete(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        super(Content, self).delete()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
        writer.deleteDocuments(lucene.Term("iri_id", self.iri_id))
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    48
        writer.commit()
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    49
        
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    50
    #TODO: better manage the change in .iri name and error scenario (save in temp file + rename
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    51
    def save(self):
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    52
        # create iri file if needed
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    53
        created = False
16
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    54
        try:
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    55
            iri_file_path = self.iri_file_path()
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    56
            if not os.path.exists(iri_file_path):
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    57
                dir = os.path.dirname(iri_file_path)
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    58
                if not os.path.exists(dir):
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    59
                    os.makedirs(dir)
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    60
                created = True
16
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    61
                file = open(iri_file_path,"w")
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    62
                create_empty_iri(file, self, "IRI")
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    63
            else:
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    64
                created = False
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    65
                update_iri(iri_file_path, self, "IRI")
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    66
                
16
b3692a42ac79 version + add indent and callback
ymh <ymh.work@gmail.com>
parents: 10
diff changeset
    67
        except Exception, e:
54
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    68
            if created:
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    69
                if os.path.exists(iri_file_path):
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    70
                    os.remove(iri_file_path)
24397932219d Merge test
samuel huron <admin@cybunk.com>
parents: 16
diff changeset
    71
            raise e
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    72
        # update it 
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    73
        super(Content, self).save()
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    def __unicode__(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        return str(self.id) + ": " + self.iri_id
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
        
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    def iri_url(self, web_url=settings.WEB_URL):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        if 'http' in self.iriurl or 'https' in self.iriurl:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
            return self.iriurl
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        else:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
            return unicode(web_url) + unicode(settings.MEDIA_URL)+u"media/ldt/"+unicode(self.iriurl)
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    83
    
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    84
    def iri_file_path(self):
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    85
        return os.path.join(os.path.join(os.path.join(os.path.join(settings.MEDIA_ROOT, "media"), "ldt"), self.iri_id), os.path.basename(self.iriurl))
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    86
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    87
    def iri_url_template(self):
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
    88
        return "${web_url}${media_url}media/ldt/" + unicode(self.iri_id) + "/" + os.path.basename(self.iriurl)
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
        
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
class Project(Document):  
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    STATE_CHOICES=(
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    (1, 'edition'),
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
    (2, 'published'),
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
    (3, 'moderated'),
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
    (4, 'rejected'),
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
    (5, 'deleted')
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
    )
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
    ldt_id = models.CharField(max_length=1024, unique=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
    ldt = models.TextField(null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
    title = models.CharField(max_length=1024)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    contents = models.ManyToManyField(Content)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
    creation_date = models.DateTimeField(auto_now_add=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    modification_date = models.DateTimeField(auto_now=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
    created_by = models.CharField(_("created by"), max_length=70)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
    changed_by = models.CharField(_("changed by"), max_length=70)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
    state = models.IntegerField(choices=STATE_CHOICES, default=1)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
    def __unicode__(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
        return unicode(self.id) + u": " + unicode(self.ldt_id)
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   111
    
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   112
    def get_description(self, doc=None):
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   113
        
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   114
        if doc is None:
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   115
            doc = xml.dom.minidom.parseString(self.ldt)
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   116
            doc = Ft.Xml.Domlette.ConvertDocument(doc)        
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   117
        
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   118
        con = xml.xpath.Context.Context(doc, 1, 1, None)
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   119
        res = xml.xpath.Evaluate("/iri/project", context=con)
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   120
        if len(res) > 0:
10
84e31387a741 correct serialization
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
   121
            return res[0].getAttributeNS(None, u'abstract')
7
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   122
        else:
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   123
            return None
881514514df1 create iri and serialize
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   124
        
5
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
    @staticmethod
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
    def create_project(user, title, contents):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        owner = Owner.objects.get(user=user)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
        project = Project(title=title, owner=owner)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
        project.ldt_id = str(uuid.uuid1())
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
        project.created_by=user.username
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
        project.changed_by=user.username
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
        project.state = 1
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
        project.save()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        for content in contents:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
            project.contents.add(content)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
        project.save()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
        return create_ldt(project, user)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
    def copy_project(self, user, title):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
        owner = Owner.objects.get(user=user)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
        project = Project(title=title, owner=owner)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
        project = copy_ldt(self, project, user)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
        project.save()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        for content in self.contents.all():
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            project.contents.add(content)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
        project.save()
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        return project
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
class Segment(models.Model):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
    project_obj = models.ForeignKey(Project, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
    content = models.ForeignKey(Content)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
    project_id = models.CharField(max_length=1024, unique=False, blank=True, null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
    iri_id = models.CharField(max_length=1024, unique=False)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
    ensemble_id = models.CharField(max_length=1024, unique=False)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    cutting_id = models.CharField(max_length=1024, unique=False)    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
    element_id = models.CharField(max_length=1024, unique=False)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
    tags = models.CharField(max_length=2048, unique=False, null=True, blank=True)  
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
    title = models.CharField(max_length=2048, unique=False, null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
    duration = models.IntegerField(null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
    start_ts = models.IntegerField(null=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
    author = models.CharField(max_length=1024, unique=False, null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
    date = models.CharField(max_length=128, unique=False, null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
    abstract = models.TextField(null=True, blank=True)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
    def __unicode__(self):
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        return "/".join((unicode(self.project_id), unicode(self.iri_id), unicode(self.ensemble_id), unicode(self.cutting_id), unicode(self.element_id)))
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
    
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
    class Meta:
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        unique_together = (('project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'),)
ae8593287883 correct error changing ldt.ldt to ldt.ldt_utils
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172