From d3f9dcea47d155df8f631eb35b0cee0374fe117d Mon Sep 17 00:00:00 2001 From: "G. Pellerin" Date: Sun, 29 May 2011 00:45:38 +0200 Subject: [PATCH] add forms, fix urls --- forms.py | 17 ++++++++++++++ models.py | 37 +++++++++++++++--------------- telecaster.py => telecaster_old.py | 4 ++-- tools/tools.py | 20 ++++++++-------- urls.py | 34 +++++++++++---------------- 5 files changed, 61 insertions(+), 51 deletions(-) create mode 100644 forms.py rename telecaster.py => telecaster_old.py (98%) diff --git a/forms.py b/forms.py new file mode 100644 index 0000000..3d75000 --- /dev/null +++ b/forms.py @@ -0,0 +1,17 @@ + +from models import * + + +class StationForm(ModelForm): + class Meta: + model = Station + + def __init__(self, *args, **kwds): + super(StationForm, self).__init__(*args, **kwds) + self.fields['organization'].queryset = Organization.objects.order_by('name') + self.fields['department'].queryset = Department.objects.order_by('name') + self.fields['conference'].queryset = Conference.objects.order_by('title') + self.fields['session'].queryset = Session.objects.order_by('name') + self.fields['professor'].queryset = Professor.objects.order_by('name') + + diff --git a/models.py b/models.py index 5e8a592..77d4903 100644 --- a/models.py +++ b/models.py @@ -48,14 +48,15 @@ from mutagen.id3 import ID3, TIT2, TP1, TAL, TDA, TDAT, TDRC, TCO, COM from django.db.models import * from django.forms import ModelForm +from django.utils.translation import ugettext_lazy as _ app_label = 'telecaster' class Organization(Model): - name = CharField(_('name')) - description = CharField(_('description')) + name = CharField(_('name'), max_length=255) + description = CharField(_('description'), max_length=255) def __str__(self): return self.name @@ -65,8 +66,8 @@ class Organization(Model): class Department(Model): - name = CharField(_('name')) - description = CharField(_('description')) + name = CharField(_('name'), max_length=255) + description = CharField(_('description'), max_length=255) def __str__(self): return self.name @@ -77,9 +78,9 @@ class Department(Model): class Conference(Model): - title = CharField(_('title')) - description = CharField(_('description')) - department = Foreignkey('Department', related_name='conferences', verbose_name='department') + title = CharField(_('title'), max_length=255) + description = CharField(_('description'), max_length=255) + department = ForeignKey('Department', related_name='conferences', verbose_name='department') def __str__(self): return self.title @@ -90,8 +91,8 @@ class Conference(Model): class Session(Model): - name = CharField(_('name')) - description = CharField(_('description')) + name = CharField(_('name'), max_length=255) + description = CharField(_('description'), max_length=255) number = IntegerField(_('number')) def __str__(self): @@ -103,11 +104,11 @@ class Session(Model): class Professor(Model): - name = CharField(_('name')) - institution = CharField(_('institution')) - address = CharField(_('address')) - telephone = CharField(_('telephone')) - email = CharField(_('email')) + name = CharField(_('name'), max_length=255) + institution = CharField(_('institution'), max_length=255) + address = CharField(_('address'), max_length=255) + telephone = CharField(_('telephone'), max_length=255) + email = CharField(_('email'), max_length=255) def __str__(self): return self.name @@ -118,10 +119,10 @@ class Professor(Model): class Station(Model): - organization = Foreignkey('Organization', related_name='stations', verbose_name='organization') - 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') + 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')) started = BooleanField(_('started')) datetime_start = DateTimeField(_('datetime_start'), auto_now_add=True) diff --git a/telecaster.py b/telecaster_old.py similarity index 98% rename from telecaster.py rename to telecaster_old.py index 5cefb0a..392a8e3 100755 --- a/telecaster.py +++ b/telecaster_old.py @@ -109,7 +109,7 @@ class TeleCaster: self.conference_dict[data] = 'Inconnu' else: self.conference_dict[data] = value - + self.conference_dict['title'] = self.title s = Station(self.conf_file, self.conference_dict, self.lock_file) s.start() @@ -126,7 +126,7 @@ class TeleCaster: self.logger.write_info('stopping') if os.path.exists(self.lock_file): self.conference_dict = get_conference_from_lock(self.lock_file) - s = Station(self.conf_file, self.conference_dict, self.lock_file) + s = Station(self.conf_file, self.conference_dict, self.lock_file) s.stop() time.sleep(2) self.main() diff --git a/tools/tools.py b/tools/tools.py index 776bf97..e4f4d14 100644 --- a/tools/tools.py +++ b/tools/tools.py @@ -76,18 +76,18 @@ def get_ip_address(ifname): )[20:24]) def get_lines(file): - """Get lines from a file""" - fic = open(file,'r') - lines = fic.readlines() - fic.close() - return lines + """Get lines from a file""" + fic = open(file,'r') + lines = fic.readlines() + fic.close() + return lines def clean_string(string): - """removes blank spaces and accents""" - string = string.replace(' ','_') - #string = string.replace('é','e') - #string = string.replace('è','e') - return string + """removes blank spaces and accents""" + string = string.replace(' ','_') + #string = string.replace('é','e') + #string = string.replace('è','e') + return string def xml2dict(conf_file): confile = open(conf_file,'r') diff --git a/urls.py b/urls.py index 0c22d81..d9f4d1f 100644 --- a/urls.py +++ b/urls.py @@ -35,35 +35,20 @@ """ from django.conf.urls.defaults import * -from telemeta.models import * -from telemeta.views import WebView +from django.conf import settings +from telecaster.models import * +from telecaster.views import WebView from jsonrpc import jsonrpc_site import os.path -#import telecaster.config -#telecaster.config.check() # initialization -web_view = WebView() - - +web_view = WebView(settings.TELECASTER_CONF) htdocs = os.path.dirname(__file__) + '/htdocs' urlpatterns = patterns('', - url(r'^$', web_view.index, name="telemeta-home"), - - # items - url(r'^items/$', 'django.views.generic.list_detail.object_list', - dict(all_items, paginate_by=20, template_name="telemeta/mediaitem_list.html"), - name="telemeta-items"), - url(r'^items/(?P[A-Za-z0-9._-]+)/$', web_view.item_detail, - name="telemeta-item-detail"), - url(r'^items/(?P[A-Za-z0-9._-]+)/dc/$', web_view.item_detail, - {'template': 'telemeta/mediaitem_detail_dc.html'}, - name="telemeta-item-dublincore"), - url(r'^items/(?P[A-Za-z0-9._-]+)/dc/xml/$', web_view.item_detail, - {'format': 'dublin_core_xml'}, - + url(r'^', web_view.index, name="telecaster-index"), + # CSS+Images (FIXME: for developement only) url(r'^css/(?P.*)$', 'django.views.static.serve', {'document_root': htdocs+'/css'}, @@ -74,3 +59,10 @@ urlpatterns = patterns('', url(r'^js/(?P.*)$', 'django.views.static.serve', {'document_root': htdocs+'/js'}, name="telemeta-js"), + + # JSON RPC + url(r'^json/$', jsonrpc_site.dispatch, name='jsonrpc_mountpoint'), + # for the graphical browser/web console only, omissible + url(r'^json/browse/', 'jsonrpc.views.browse', name="jsonrpc_browser"), + +) -- 2.39.5