Add language property to events
authorMagnus Hagander <magnus@hagander.net>
Wed, 30 Jan 2013 14:17:12 +0000 (15:17 +0100)
committerMagnus Hagander <magnus@hagander.net>
Wed, 30 Jan 2013 14:17:55 +0000 (15:17 +0100)
Enter the primary language for any event. In the future we will likely want
to filter events bsaed on this, but for now we just show it in the listing
and on the details page.

Requires SQL (after syncdb has run):
ALTER TABLE events_event ADD COLUMN language_id varchar(7) REFERENCES core_language(alpha3) DEFERRABLE INITIALLY DEFERRED;

Also requires loading of fixture:
./manage.py loaddata core/fixtures/language.yaml

Fixes #125

pgweb/events/models.py
templates/events/archive.html
templates/events/item.html

index 3c09697bf5181ad74a5e674b01116ee6d5cf8f86..432253406a31f0d2e8e5f0a88db5d236ee2f3b8e 100644 (file)
@@ -3,7 +3,7 @@ from django.contrib.auth.models import User
 from datetime import date
 from pgweb.util.bases import PgModel
 
-from core.models import Country, Organisation
+from core.models import Country, Language, Organisation
 
 class Event(PgModel, models.Model):
        approved = models.BooleanField(null=False, blank=False, default=False)
@@ -14,6 +14,7 @@ class Event(PgModel, models.Model):
        city = models.CharField(max_length=50, null=False, blank=True)
        state = models.CharField(max_length=50, null=False, blank=True) 
        country = models.ForeignKey(Country, null=True, blank=True)
+       language = models.ForeignKey(Language, null=True, blank=True, default=Language.english, help_text="Primary language for event. When multiple languages, specify this in the event description")
        
        training = models.BooleanField(null=False, blank=False, default=False)
        startdate = models.DateField(null=False, blank=False, verbose_name="Start date")
index 289a93e280c983a5f1a9cfd4a42d918d5497e995..f57e9395c042f04270eabf41a1107629fc3edf43 100644 (file)
@@ -15,6 +15,7 @@ whatsoever.</i>
 <div><a href="/about/event/{{event.id}}/">{{event.title}}</a></div>
 <div>Date: <b>{{event.displaydate|safe}}</b></div>
 <div>Location: <b>{{event.locationstring}}</b></div>
+{%if event.language%}<div>Language: <b>{{event.language}}</b></div>{%endif%}
 <p>
 {{event.summary|markdown:"safe"}}
 </p>
index d98cb18e86dffa4909ec27c723559d34e950f8d6..db7257276b5424db91d3730e0c6eeb2fa0524517 100644 (file)
@@ -5,6 +5,7 @@
 <h1>{{obj.title}}</h1>
 <div class="eventdate">Date: <b>{{obj.displaydate|safe}}</b></div>
 <div>Location: {{obj.locationstring}}</div>
+{%if obj.language%}<div>Language: {{obj.language}}</div>{%endif%}
 {{obj.details|markdown:"safe"}}
 {%if obj.has_organisation%}
 <p>Posted by {{obj.org}}{%if obj.org.email%} ({{obj.org.email}}){%endif%}.</p>