[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