[Debconf-video-commits] r374 - in package/branches/pycon09/src: . debconfvideo pyconvideo pyconvideo/pyconvideo

benh at alioth.debian.org benh at alioth.debian.org
Mon Mar 23 19:54:30 UTC 2009


Author: benh
Date: 2009-03-23 19:54:30 +0000 (Mon, 23 Mar 2009)
New Revision: 374

Added:
   package/branches/pycon09/src/pyconvideo/
   package/branches/pycon09/src/pyconvideo/pyconvideo/admin.py
   package/branches/pycon09/src/pyconvideo/pyconvideo/models.py
   package/branches/pycon09/src/pyconvideo/urls.py
Removed:
   package/branches/pycon09/src/debconfvideo/web/
   package/branches/pycon09/src/pyconvideo/pyconvideo/models.py
   package/branches/pycon09/src/pyconvideo/urls.py
Modified:
   package/branches/pycon09/src/pyconvideo/settings.py
Log:
Move debconfvideo.web to pyconvideo.


Copied: package/branches/pycon09/src/pyconvideo (from rev 352, package/branches/pycon09/src/debconfvideo/web)


Property changes on: package/branches/pycon09/src/pyconvideo
___________________________________________________________________
Name: svn:mergeinfo
   + 

Copied: package/branches/pycon09/src/pyconvideo/pyconvideo/admin.py (from rev 365, package/branches/pycon09/src/debconfvideo/web/pyconvideo/admin.py)
===================================================================
--- package/branches/pycon09/src/pyconvideo/pyconvideo/admin.py	                        (rev 0)
+++ package/branches/pycon09/src/pyconvideo/pyconvideo/admin.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -0,0 +1,33 @@
+from pyconvideo.pyconvideo import models
+from django.contrib import admin
+
+class EventAdmin(admin.ModelAdmin):
+    date_hierarchy = 'start_time'
+    fields = ['title', 'conference_room', 'start_time', 'duration',
+              'description']
+    list_display = ['title', 'conference_room', 'start_time']
+    ordering = ['start_time']
+
+class VideoRecordingAdmin(admin.ModelAdmin):
+    date_hierarchy = 'recording_time'
+    fields = ['recording_filename', 'conference_room', 'recording_time',
+              'recording_duration', 'file_status', 'comments', 'locked_by']
+    list_display = ['recording_filename', 'file_status', 'locked_by']
+    list_filter = ['file_status']
+    ordering = ['recording_time']
+
+class VideoTargetFileAdmin(admin.ModelAdmin):
+    fields = ['event_recording', 'target_format',
+              'generated_time', 'file_status', 'comments', 'locked_by',
+              'published_time']
+    list_display = ['target_filename', 'file_status', 'locked_by']
+    list_filter = ['target_format', 'file_status']
+
+admin.site.register(models.Conference)
+admin.site.register(models.ConferenceRoom)
+admin.site.register(models.Event, EventAdmin)
+admin.site.register(models.VideoFileStatus)
+admin.site.register(models.VideoRecording, VideoRecordingAdmin)
+admin.site.register(models.VideoEventRecording)
+admin.site.register(models.VideoTargetFormat)
+admin.site.register(models.VideoTargetFile, VideoTargetFileAdmin)

Deleted: package/branches/pycon09/src/pyconvideo/pyconvideo/models.py
===================================================================
--- package/branches/pycon09/src/debconfvideo/web/pyconvideo/models.py	2009-03-21 14:03:01 UTC (rev 352)
+++ package/branches/pycon09/src/pyconvideo/pyconvideo/models.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -1,128 +0,0 @@
-# Based on auto-generated Django model code.
-
-from django.db import models
-import mx.DateTime
-import debconfvideo
-
-def hms_to_seconds(hms):
-    parts = hms.split(':')
-    if len(parts) > 3:
-        raise ValueError()
-    hours, minutes, seconds = (3 - len(parts)) * [0] + parts
-    return (int(hours) * 60 + int(minutes)) * 60 + float(seconds)
-
-class IntervalField(models.CharField):
-    def __init__(self, *args, **kwargs):
-        kwargs['max_length'] = 12
-        super(IntervalField, self).__init__(*args, **kwargs)
-    def db_type(self):
-        return 'INTERVAL'
-    def to_python(self, value):
-        return value
-    def get_db_prep_value(self, value):
-        return '%g SECONDS' % hms_to_seconds(value)
-
-class Conference(models.Model):
-    conference_id = models.AutoField(primary_key=True)
-    title = models.CharField(unique=True, max_length=200)
-    homepage = models.CharField(max_length=100)
-    timezone = models.CharField(max_length=50)
-    def __unicode__(self):
-        return self.title
-    class Meta:
-        db_table = u'conference'
-
-class ConferenceRoom(models.Model):
-    conference = models.ForeignKey(Conference)
-    # Not really the primary key, but this will only be used for one conference
-    conference_room = models.CharField(primary_key=True, max_length=100)
-    def __unicode__(self):
-        return self.conference_room
-    class Meta:
-        db_table = u'conference_room'
-
-class Event(models.Model):
-    event_id = models.AutoField(primary_key=True)
-    source_url = models.CharField(unique=True, max_length=200)
-    conference_id = models.IntegerField()
-    conference_room = models.ForeignKey(ConferenceRoom, db_column='conference_room')
-    title = models.CharField(max_length=200)
-    description = models.CharField(max_length=4000)
-    start_time = models.DateTimeField()
-    duration = IntervalField()
-    def __unicode__(self):
-        return self.title
-    class Meta:
-        db_table = u'event'
-
-class VideoFileStatus(models.Model):
-    id = models.AutoField(primary_key=True)
-    file_status_code = models.CharField(unique=True, max_length=1)
-    file_status_desc = models.CharField(max_length=1000)
-    def __unicode__(self):
-        return u'%s: %s' % (self.file_status_code, self.file_status_desc)
-    class Meta:
-        db_table = u'video_file_status'
-        verbose_name_plural = u'video file statuses'
-
-class VideoRecording(models.Model):
-    id = models.AutoField(primary_key=True)
-    conference_id = models.IntegerField()
-    conference_room = models.ForeignKey(ConferenceRoom, db_column='conference_room')
-    recording_time = models.DateTimeField()
-    recording_duration = IntervalField()
-    recording_filename = models.CharField(unique=True, max_length=100)
-    file_status = models.ForeignKey(VideoFileStatus)
-    comments = models.TextField()
-    locked_by = models.IntegerField()
-    def __unicode__(self):
-        return self.recording_filename
-    class Meta:
-        db_table = u'video_recording'
-
-class VideoEventRecording(models.Model):
-    id = models.AutoField(primary_key=True)
-    event = models.ForeignKey(Event)
-    recording = models.ForeignKey(VideoRecording)
-    start_time = IntervalField()
-    end_time = IntervalField()
-    event_recording_base_name = models.CharField(max_length=150)
-    def __unicode__(self):
-        return u'"%s" in "%s"' % (self.event, self.recording)
-    class Meta:
-        db_table = u'video_event_recording'
-
-class VideoTargetFormat(models.Model):
-    id = models.AutoField(primary_key=True)
-    target_format_abbr = models.CharField(unique=True, max_length=20)
-    priority = models.IntegerField()
-    container_name = models.CharField(max_length=10)
-    filename_extension = models.CharField(max_length=10)
-    video_width = models.IntegerField()
-    video_height = models.IntegerField()
-    video_codec_name = models.CharField(max_length=20)
-    video_bit_rate = models.IntegerField()
-    audio_sample_rate = models.IntegerField()
-    audio_channel_count = models.IntegerField()
-    audio_codec_name = models.CharField(max_length=20)
-    audio_bit_rate = models.IntegerField()
-    published = models.BooleanField()
-    def __unicode__(self):
-        return self.target_format_abbr
-    class Meta:
-        db_table = u'video_target_format'
-
-class VideoTargetFile(models.Model):
-    id = models.AutoField(primary_key=True)
-    event_recording = models.ForeignKey(VideoEventRecording)
-    target_format = models.ForeignKey(VideoTargetFormat)
-    file_status = models.ForeignKey(VideoFileStatus)
-    comments = models.TextField()
-    locked_by = models.IntegerField()
-    generated_time = models.DateTimeField()
-    published_time = models.DateTimeField()
-    def __unicode__(self):
-        return debconfvideo.target_filename(self.event_recording,
-                                            self.target_format)
-    class Meta:
-        db_table = u'video_target_file'

Copied: package/branches/pycon09/src/pyconvideo/pyconvideo/models.py (from rev 370, package/branches/pycon09/src/debconfvideo/web/pyconvideo/models.py)
===================================================================
--- package/branches/pycon09/src/pyconvideo/pyconvideo/models.py	                        (rev 0)
+++ package/branches/pycon09/src/pyconvideo/pyconvideo/models.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -0,0 +1,144 @@
+# Based on auto-generated Django model code.
+
+from django.contrib import auth
+from django.db import models
+import mx.DateTime
+import debconfvideo
+
+class IntervalField(models.CharField):
+    __metaclass__ = models.SubfieldBase
+    def __init__(self, precision=0, **kwargs):
+        self.__precision = precision
+        kwargs['max_length'] = 12
+        super(IntervalField, self).__init__(**kwargs)
+    def db_type(self):
+        return 'INTERVAL'
+    def to_python(self, value):
+        if isinstance(value, mx.DateTime.DateTimeDeltaType):
+            days, hours, minutes, seconds = value.tuple()
+            return '%02d:%02d:%0*.*f' \
+                % (24 * days + hours,
+                   minutes,
+                   self.__precision and (3 + self.__precision) or 2,
+                   self.__precision,
+                   seconds)
+        else:
+            return value
+
+class Conference(models.Model):
+    conference_id = models.AutoField(primary_key=True)
+    title = models.CharField(unique=True, max_length=200)
+    homepage = models.CharField(max_length=100)
+    timezone = models.CharField(max_length=50)
+    def __unicode__(self):
+        return self.title
+    class Meta:
+        db_table = u'conference'
+
+class ConferenceRoom(models.Model):
+    conference = models.ForeignKey(Conference)
+    # Not really the primary key, but this will only be used for one conference
+    conference_room = models.CharField(primary_key=True, max_length=100,
+                                       verbose_name='name')
+    def __unicode__(self):
+        return self.conference_room
+    class Meta:
+        db_table = u'conference_room'
+
+class Event(models.Model):
+    event_id = models.AutoField(primary_key=True)
+    source_url = models.CharField(unique=True, max_length=200)
+    conference_id = models.IntegerField()
+    conference_room = models.ForeignKey(ConferenceRoom,
+                                        db_column='conference_room',
+                                        verbose_name='room')
+    title = models.CharField(max_length=200)
+    description = models.TextField(max_length=4000)
+    start_time = models.DateTimeField()
+    duration = IntervalField()
+    def __unicode__(self):
+        return self.title
+    class Meta:
+        db_table = u'event'
+
+class VideoFileStatus(models.Model):
+    id = models.AutoField(primary_key=True)
+    file_status_code = models.CharField(unique=True, max_length=1,
+                                        verbose_name='code')
+    file_status_desc = models.CharField(max_length=1000,
+                                        verbose_name='description')
+    def __unicode__(self):
+        return u'%s: %s' % (self.file_status_code, self.file_status_desc)
+    class Meta:
+        db_table = u'video_file_status'
+        verbose_name_plural = u'video file statuses'
+
+class VideoRecording(models.Model):
+    id = models.AutoField(primary_key=True)
+    conference_id = models.IntegerField()
+    conference_room = models.ForeignKey(ConferenceRoom,
+                                        db_column='conference_room',
+                                        verbose_name='room')
+    recording_time = models.DateTimeField(verbose_name='start time')
+    recording_duration = IntervalField(verbose_name='duration')
+    recording_filename = models.CharField(unique=True, max_length=100,
+                                          verbose_name='filename')
+    file_status = models.ForeignKey(VideoFileStatus)
+    comments = models.TextField()
+    locked_by = models.ForeignKey(auth.models.User, db_column='locked_by', null=True)
+    def __unicode__(self):
+        return self.recording_filename
+    class Meta:
+        db_table = u'video_recording'
+
+class VideoEventRecording(models.Model):
+    id = models.AutoField(primary_key=True)
+    event = models.ForeignKey(Event)
+    recording = models.ForeignKey(VideoRecording)
+    start_time = IntervalField(precision=2)
+    end_time = IntervalField(precision=2)
+    event_recording_base_name = \
+        models.SlugField(max_length=150, unique=True,
+                         verbose_name='base name for target files')
+    def __unicode__(self):
+        return u'"%s" in "%s"' % (self.event, self.recording)
+    class Meta:
+        db_table = u'video_event_recording'
+
+class VideoTargetFormat(models.Model):
+    id = models.AutoField(primary_key=True)
+    target_format_abbr = models.CharField(unique=True, max_length=20)
+    priority = models.IntegerField()
+    container_name = models.CharField(max_length=10)
+    filename_extension = models.CharField(max_length=10)
+    video_width = models.IntegerField()
+    video_height = models.IntegerField()
+    video_codec_name = models.CharField(max_length=20)
+    video_bit_rate = models.IntegerField()
+    audio_sample_rate = models.IntegerField()
+    audio_channel_count = models.IntegerField()
+    audio_codec_name = models.CharField(max_length=20)
+    audio_bit_rate = models.IntegerField()
+    published = models.BooleanField(verbose_name='publish files')
+    def __unicode__(self):
+        return self.target_format_abbr
+    class Meta:
+        db_table = u'video_target_format'
+
+class VideoTargetFile(models.Model):
+    id = models.AutoField(primary_key=True)
+    event_recording = models.ForeignKey(VideoEventRecording)
+    target_format = models.ForeignKey(VideoTargetFormat)
+    file_status = models.ForeignKey(VideoFileStatus)
+    comments = models.TextField()
+    locked_by = models.ForeignKey(auth.models.User, db_column='locked_by', null=True)
+    generated_time = models.DateTimeField()
+    published_time = models.DateTimeField()
+    def _target_filename(self):
+        return debconfvideo.target_filename(self.event_recording,
+                                            self.target_format)
+    target_filename = property(_target_filename)
+    def __unicode__(self):
+        return self.target_filename
+    class Meta:
+        db_table = u'video_target_file'

Modified: package/branches/pycon09/src/pyconvideo/settings.py
===================================================================
--- package/branches/pycon09/src/debconfvideo/web/settings.py	2009-03-21 14:03:01 UTC (rev 352)
+++ package/branches/pycon09/src/pyconvideo/settings.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -64,7 +64,7 @@
     'django.contrib.auth.middleware.AuthenticationMiddleware',
 )
 
-ROOT_URLCONF = 'web.urls'
+ROOT_URLCONF = 'pyconvideo.urls'
 
 TEMPLATE_DIRS = (
     # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
@@ -78,5 +78,5 @@
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.sites',
-    'web.pyconvideo',
+    'pyconvideo.pyconvideo',
 )

Deleted: package/branches/pycon09/src/pyconvideo/urls.py
===================================================================
--- package/branches/pycon09/src/debconfvideo/web/urls.py	2009-03-21 14:03:01 UTC (rev 352)
+++ package/branches/pycon09/src/pyconvideo/urls.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -1,17 +0,0 @@
-from django.conf.urls.defaults import *
-
-# Uncomment the next two lines to enable the admin:
-from django.contrib import admin
-admin.autodiscover()
-
-urlpatterns = patterns('',
-    # Example:
-    # (r'^web/', include('web.foo.urls')),
-
-    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
-    # to INSTALLED_APPS to enable admin documentation:
-    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
-
-    # Uncomment the next line to enable the admin:
-    (r'^admin/(.*)', admin.site.root),
-)

Copied: package/branches/pycon09/src/pyconvideo/urls.py (from rev 372, package/branches/pycon09/src/debconfvideo/web/urls.py)
===================================================================
--- package/branches/pycon09/src/pyconvideo/urls.py	                        (rev 0)
+++ package/branches/pycon09/src/pyconvideo/urls.py	2009-03-23 19:54:30 UTC (rev 374)
@@ -0,0 +1,25 @@
+from django.conf.urls.defaults import *
+from django.http import HttpResponse
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+admin.autodiscover()
+
+def front_page(request):
+    return HttpResponse('''\
+<html>
+  <head><title>Pycon Video Management</title></head>
+  <body>
+    <h1>Pycon Video Management</h1>
+    <p><a href="admin/pyconvideo/event/">Events</a> - all known events in the conference</p>
+    <p><a href="admin/pyconvideo/videorecording/">Recordings</a> - all recorded files</p>
+    <p><a href="admin/pyconvideo/videoeventrecording/">Event-recordings</a> - events known to have been recorded</p>
+    <p><a href="admin/pyconvideo/videotargetfile/">Target files</a> - completed files for publication or archival</p>
+  </body>
+</html>
+''')
+
+urlpatterns = patterns('',
+    (r'^$', front_page),
+    (r'^admin/(.*)', admin.site.root),
+)




More information about the Debconf-video-commits mailing list