--- /dev/null
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Changing field 'Session.description'
+ db.alter_column('telecaster_session', 'description', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Department.description'
+ db.alter_column('telecaster_department', 'description', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Organization.description'
+ db.alter_column('telecaster_organization', 'description', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Professor.institution'
+ db.alter_column('telecaster_professor', 'institution', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Professor.telephone'
+ db.alter_column('telecaster_professor', 'telephone', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Professor.address'
+ db.alter_column('telecaster_professor', 'address', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Professor.email'
+ db.alter_column('telecaster_professor', 'email', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+
+ # Changing field 'Station.comment'
+ db.alter_column('telecaster_station', 'comment', self.gf('django.db.models.fields.TextField')(default=''))
+
+ # Changing field 'Conference.description'
+ db.alter_column('telecaster_conference', 'description', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
+ def backwards(self, orm):
+
+ # Changing field 'Session.description'
+ db.alter_column('telecaster_session', 'description', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Department.description'
+ db.alter_column('telecaster_department', 'description', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Organization.description'
+ db.alter_column('telecaster_organization', 'description', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Professor.institution'
+ db.alter_column('telecaster_professor', 'institution', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Professor.telephone'
+ db.alter_column('telecaster_professor', 'telephone', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Professor.address'
+ db.alter_column('telecaster_professor', 'address', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Professor.email'
+ db.alter_column('telecaster_professor', 'email', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+
+ # Changing field 'Station.comment'
+ db.alter_column('telecaster_station', 'comment', self.gf('django.db.models.fields.TextField')(null=True))
+
+ # Changing field 'Conference.description'
+ db.alter_column('telecaster_conference', 'description', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
+ models = {
+ 'telecaster.conference': {
+ 'Meta': {'object_name': 'Conference'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conferences'", 'to': "orm['telecaster.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.professor': {
+ 'Meta': {'object_name': 'Professor'},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'institution': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'telecaster.session': {
+ 'Meta': {'object_name': 'Session'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'number': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'telecaster.station': {
+ 'Meta': {'object_name': 'Station'},
+ 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Conference']"}),
+ 'datetime_start': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'datetime_stop': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Organization']"}),
+ 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Professor']"}),
+ 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Session']"}),
+ 'started': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ }
+ }
+
+ complete_apps = ['telecaster']
\ No newline at end of file
--- /dev/null
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding model 'Record'
+ db.create_table('telecaster_record', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('station', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='records', null=True, to=orm['telecaster.Station'])),
+ ('datetime', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ('file', self.gf('django.db.models.fields.files.FileField')(max_length=100)),
+ ))
+ db.send_create_signal('telecaster', ['Record'])
+
+ def backwards(self, orm):
+ # Deleting model 'Record'
+ db.delete_table('telecaster_record')
+
+ models = {
+ 'telecaster.conference': {
+ 'Meta': {'object_name': 'Conference'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conferences'", 'to': "orm['telecaster.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telecaster.professor': {
+ 'Meta': {'object_name': 'Professor'},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'institution': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'telecaster.record': {
+ 'Meta': {'object_name': 'Record'},
+ 'datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'station': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'records'", 'null': 'True', 'to': "orm['telecaster.Station']"})
+ },
+ 'telecaster.session': {
+ 'Meta': {'object_name': 'Session'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'number': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'telecaster.station': {
+ 'Meta': {'object_name': 'Station'},
+ 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Conference']"}),
+ 'datetime_start': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'datetime_stop': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Organization']"}),
+ 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Professor']"}),
+ 'session': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'stations'", 'to': "orm['telecaster.Session']"}),
+ 'started': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ }
+ }
+
+ complete_apps = ['telecaster']
\ No newline at end of file
from mutagen.oggvorbis import OggVorbis
from mutagen.id3 import ID3, TIT2, TP1, TAL, TDA, TDAT, TDRC, TCO, COM
+import django.db.models as models
from django.db.models import *
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
class Organization(Model):
-
+
name = CharField(_('name'), max_length=255)
description = CharField(_('description'), max_length=255, blank=True)
-
+
def __str__(self):
return self.name
-
+
class Meta:
db_table = app_label + '_' + 'organization'
class Department(Model):
-
+
name = CharField(_('name'), max_length=255)
description = CharField(_('description'), max_length=255, blank=True)
def __str__(self):
return self.name
-
+
class Meta:
db_table = app_label + '_' + 'department'
class Conference(Model):
-
+
title = CharField(_('title'), max_length=255)
description = CharField(_('description'), max_length=255, blank=True)
department = ForeignKey('Department', related_name='conferences', verbose_name='department')
-
+
def __str__(self):
return self.title
-
+
class Meta:
db_table = app_label + '_' + 'conference'
class Session(Model):
-
+
name = CharField(_('name'), max_length=255)
description = CharField(_('description'), max_length=255, blank=True)
number = IntegerField(_('number'))
-
+
def __str__(self):
return self.name
-
+
class Meta:
db_table = app_label + '_' + 'session'
class Professor(Model):
-
+
name = CharField(_('name'), max_length=255)
institution = CharField(_('institution'), max_length=255, blank=True)
address = CharField(_('address'), max_length=255, blank=True)
def __str__(self):
return self.name
-
+
class Meta:
db_table = app_label + '_' + 'professor'
-
-
+
+
class Station(Model):
-
- organization = ForeignKey('Organization', related_name='stations', verbose_name='organization')
- department = ForeignKey('Department', related_name='stations', verbose_name='department')
- conference = ForeignKey('Conference', related_name='stations', verbose_name='conference')
- session = ForeignKey('Session', related_name='stations', verbose_name='session')
- professor = ForeignKey('Professor', related_name='stations', verbose_name='professor')
+
+ organization = ForeignKey(Organization, related_name='stations', verbose_name='organization')
+ department = ForeignKey(Department, related_name='stations', verbose_name='department')
+ conference = ForeignKey(Conference, related_name='stations', verbose_name='conference')
+ session = ForeignKey(Session, related_name='stations', verbose_name='session')
+ professor = ForeignKey(Professor, related_name='stations', verbose_name='professor')
comment = TextField(_('comment'), blank=True)
started = BooleanField(_('started'))
- datetime_start = DateTimeField(_('time_start'), blank=True)
- datetime_stop = DateTimeField(_('time_stop'), blank=True)
+ datetime_start = DateTimeField(_('time_start'), blank=True, null=True)
+ datetime_stop = DateTimeField(_('time_stop'), blank=True, null=True)
class Meta:
db_table = app_label + '_' + 'station'
-
+
def __str__(self):
return ' - '.join(self.description) + ' - ' + str(self.datetime_start) + ' > ' + str(self.datetime_stop)
-
+
def to_dict(self):
dict = [ {'id':'organization','value': self.organization.name, 'class':'', 'label':'Organization'},
{'id': 'department', 'value': self.department.name , 'class':'', 'label':'Departement'},
{'id': 'started', 'value': str(self.started), 'class':'' , 'label': 'Started'},
]
return dict
-
+
@property
def description(self):
return [self.organization.name, self.conference.department.name, self.conference.title, self.session.name, self.professor.name, self.comment]
-
+
def set_conf(self, conf):
self.conf = conf
-
+
def setup(self):
self.date = datetime.datetime.now().strftime("%Y")
self.time = datetime.datetime.now().strftime("%x-%X")
self.deefuzzer_dict = xml2dict(self.deefuzzer_default_conf_file)
self.deefuzzer_osc_ports = []
self.server_ports = []
-
+
for station in self.deefuzzer_dict['deefuzzer']['station']:
if station['control']['mode'] == '1':
self.deefuzzer_osc_ports.append(station['control']['port'])
station['relay']['mode'] = '1'
station['relay']['author'] = self.professor
self.deefuzzer_dict['deefuzzer']['station'][i] = station
- i += 1
+ i += 1
self.deefuzzer_xml = dicttoxml(self.deefuzzer_dict)
def deefuzzer_write_conf(self):
self.deefuzzer_stop()
self.del_lock()
+
+class Record(Model):
+
+ station = ForeignKey(Station, related_name='records', verbose_name='station',
+ blank=True, null=True, on_delete=models.SET_NULL)
+ datetime = DateTimeField(_('record_date'), auto_now=True)
+ file = FileField(_('file'), upload_to='items/%Y/%m/%d')
+