Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'master' into transport

Conflicts:
	molly/osm/management/commands/generate_markers.py
	molly/providers/apps/maps/naptan.py
	requirements/core.txt
  • Loading branch information...
commit 118e057b80135bd85ed64e27ed0484f99463fe85 2 parents 68acf05 + 342a4a0
@cnorthwood cnorthwood authored
Showing with 1,474 additions and 102 deletions.
  1. +1 −1  demos/molly_oxford/{ → apache}/molly_oxford.wsgi
  2. +39 −0 demos/molly_oxford/apps/river_status/migrations/0001_initial.py
  3. 0  demos/molly_oxford/apps/river_status/migrations/__init__.py
  4. +0 −1  demos/molly_oxford/providers/apps/river_status/__init__.py
  5. +8 −6 demos/molly_oxford/settings.py
  6. +0 −1  molly/apps/desktop/views.py
  7. +66 −0 molly/apps/external_media/migrations/0001_initial.py
  8. 0  molly/apps/external_media/migrations/__init__.py
  9. +0 −1  molly/apps/external_media/models.py
  10. +0 −1  molly/apps/external_media/templatetags/molly_external_media_tags.py
  11. +51 −0 molly/apps/feature_vote/migrations/0001_initial.py
  12. 0  molly/apps/feature_vote/migrations/__init__.py
  13. +0 −12 molly/apps/feeds/importers/daily_info.py
  14. +0 −1  molly/apps/feeds/importers/generic_rss.py
  15. +234 −0 molly/apps/feeds/migrations/0001_initial.py
  16. 0  molly/apps/feeds/migrations/__init__.py
  17. +3 −1 molly/apps/feeds/templates/rss/news/index.html
  18. +8 −8 molly/apps/feeds/templates/rss/news/item_detail.html
  19. +2 −1  molly/apps/feeds/templates/rss/news/item_list.html
  20. +56 −0 molly/apps/home/migrations/0001_initial.py
  21. 0  molly/apps/home/migrations/__init__.py
  22. +0 −1  molly/apps/home/templatetags/portal_misc.py
  23. +178 −0 molly/apps/places/migrations/0001_initial.py
  24. 0  molly/apps/places/migrations/__init__.py
  25. +124 −0 molly/apps/podcasts/migrations/0001_initial.py
  26. 0  molly/apps/podcasts/migrations/__init__.py
  27. +1 −0  molly/apps/podcasts/models.py
  28. +0 −8 molly/apps/podcasts/templates/podcasts/index.html
  29. +0 −6 molly/apps/sakai/views.py
  30. +35 −0 molly/apps/url_shortener/migrations/0001_initial.py
  31. 0  molly/apps/url_shortener/migrations/__init__.py
  32. +0 −1  molly/apps/url_shortener/views.py
  33. +73 −0 molly/apps/weather/migrations/0001_initial.py
  34. 0  molly/apps/weather/migrations/__init__.py
  35. +43 −0 molly/apps/webcams/migrations/0001_initial.py
  36. 0  molly/apps/webcams/migrations/__init__.py
  37. +214 −0 molly/auth/migrations/0001_initial.py
  38. 0  molly/auth/migrations/__init__.py
  39. +0 −3  molly/auth/views.py
  40. +53 −0 molly/batch_processing/migrations/0001_initial.py
  41. 0  molly/batch_processing/migrations/__init__.py
  42. +43 −0 molly/geolocation/migrations/0001_initial.py
  43. 0  molly/geolocation/migrations/__init__.py
  44. +0 −2  molly/geolocation/utils.py
  45. +1 −2  molly/logger/config.py
  46. +0 −4 molly/logger/server.py
  47. +7 −15 molly/osm/management/commands/generate_markers.py
  48. +142 −0 molly/osm/migrations/0001_initial.py
  49. 0  molly/osm/migrations/__init__.py
  50. +0 −1  molly/providers/apps/contact/mit.py
  51. +0 −1  molly/providers/apps/geolocation/cloudmade.py
  52. +9 −3 molly/providers/apps/maps/naptan.py
  53. +0 −3  molly/providers/apps/maps/postcodes.py
  54. +0 −1  molly/providers/apps/podcasts/opml.py
  55. +1 −7 molly/providers/apps/search/application_search.py
  56. +0 −3  molly/stats/logger.py
  57. +57 −0 molly/stats/migrations/0001_initial.py
  58. 0  molly/stats/migrations/__init__.py
  59. +15 −1 molly/utils/context_processors.py
  60. +4 −2 requirements/core.txt
  61. +4 −3 scripts/deploy-molly.sh
  62. +1 −0  scripts/update-molly.sh
  63. +1 −1  setup.py
View
2  demos/molly_oxford/molly_oxford.wsgi → demos/molly_oxford/apache/molly_oxford.wsgi
@@ -3,7 +3,7 @@
import os, os.path
import sys
-os.environ['DJANGO_SETTINGS_MODULE'] = 'demos.molly_oxford.settings'
+os.environ['DJANGO_SETTINGS_MODULE'] = 'molly_oxford.settings'
sys.path.insert(0, os.path.abspath(os.path.join(
os.path.dirname(__file__), '..', '..',
)))
View
39 demos/molly_oxford/apps/river_status/migrations/0001_initial.py
@@ -0,0 +1,39 @@
+# encoding: 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 'FlagStatus'
+ db.create_table('river_status_flagstatus', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('order', self.gf('django.db.models.fields.IntegerField')()),
+ ('name', self.gf('django.db.models.fields.TextField')()),
+ ('status', self.gf('django.db.models.fields.CharField')(max_length=6)),
+ ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ))
+ db.send_create_signal('river_status', ['FlagStatus'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'FlagStatus'
+ db.delete_table('river_status_flagstatus')
+
+
+ models = {
+ 'river_status.flagstatus': {
+ 'Meta': {'object_name': 'FlagStatus'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'status': ('django.db.models.fields.CharField', [], {'max_length': '6'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['river_status']
View
0  demos/molly_oxford/apps/river_status/migrations/__init__.py
No changes.
View
1  demos/molly_oxford/providers/apps/river_status/__init__.py
@@ -26,7 +26,6 @@ def import_data(self, metadata, output):
flag_status = FlagStatus(order=i)
flag_status.name = name
- print tr[1][0].attrib['alt']
flag_status.status = status
View
14 demos/molly_oxford/settings.py
@@ -74,8 +74,9 @@
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
'django.core.context_processors.debug',
+ 'django.core.context_processors.request',
# 'django.core.context_processors.i18n',
- 'django.core.context_processors.media',
+ 'molly.utils.context_processors.ssl_media',
# 'django.contrib.messages.context_processors.messages',
'molly.wurfl.context_processors.wurfl_device',
'molly.wurfl.context_processors.device_specific_media',
@@ -169,11 +170,11 @@
Provider('molly.providers.apps.podcasts.OPMLPodcastsProvider',
url = 'http://rss.oucs.ox.ac.uk/metafeeds/podcastingnewsfeeds.opml',
),
- Provider('molly.providers.apps.podcasts.RSSPodcastsProvider',
- podcasts = [
- ('top-downloads', 'http://rss.oucs.ox.ac.uk/oxitems/topdownloads.xml'),
- ],
- ),
+ #Provider('molly.providers.apps.podcasts.RSSPodcastsProvider',
+ # podcasts = [
+ # ('top-downloads', 'http://rss.oucs.ox.ac.uk/oxitems/topdownloads.xml'),
+ # ],
+ #),
]
),
@@ -334,6 +335,7 @@
'staticfiles',
'compress',
+ 'south',
# 'debug_toolbar',
)
View
1  molly/apps/desktop/views.py
@@ -33,7 +33,6 @@ def _cache(self, f, key, args=None, kwargs=None, timeout=None):
key = '.'.join(['molly', self.conf.local_name, key])
value = cache.get(key)
if value is None:
- print "Fetching"
value = f(*(args or ()), **(kwargs or {}))
cache.set(key, value, timeout)
return value
View
66 molly/apps/external_media/migrations/0001_initial.py
@@ -0,0 +1,66 @@
+# encoding: 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 'ExternalImage'
+ db.create_table('external_media_externalimage', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('etag', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('last_modified', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('last_updated', self.gf('django.db.models.fields.DateTimeField')()),
+ ('width', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
+ ('height', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
+ ))
+ db.send_create_signal('external_media', ['ExternalImage'])
+
+ # Adding model 'ExternalImageSized'
+ db.create_table('external_media_externalimagesized', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('external_image', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['external_media.ExternalImage'])),
+ ('width', self.gf('django.db.models.fields.PositiveIntegerField')()),
+ ('height', self.gf('django.db.models.fields.PositiveIntegerField')()),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('content_type', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('external_media', ['ExternalImageSized'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'ExternalImage'
+ db.delete_table('external_media_externalimage')
+
+ # Deleting model 'ExternalImageSized'
+ db.delete_table('external_media_externalimagesized')
+
+
+ models = {
+ 'external_media.externalimage': {
+ 'Meta': {'object_name': 'ExternalImage'},
+ 'etag': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'height': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_modified': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'last_updated': ('django.db.models.fields.DateTimeField', [], {}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'width': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'})
+ },
+ 'external_media.externalimagesized': {
+ 'Meta': {'object_name': 'ExternalImageSized'},
+ 'content_type': ('django.db.models.fields.TextField', [], {}),
+ 'external_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['external_media.ExternalImage']"}),
+ 'height': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'width': ('django.db.models.fields.PositiveIntegerField', [], {})
+ }
+ }
+
+ complete_apps = ['external_media']
View
0  molly/apps/external_media/migrations/__init__.py
No changes.
View
1  molly/apps/external_media/models.py
@@ -75,7 +75,6 @@ def save(self, force_insert=False, force_update=False, *args, **kwargs):
resized.save(self.get_filename(), format='jpeg')
self.content_type = 'image/jpeg'
except IOError, e:
- print "ERR", e
try:
resized.convert('RGB').save(self.get_filename(), format='jpeg')
self.content_type = 'image/jpeg'
View
1  molly/apps/external_media/templatetags/molly_external_media_tags.py
@@ -35,7 +35,6 @@ def render(self, context):
width = float('inf')
url, width = self.url.resolve(context), min(width, context['device'].max_image_width)
- print "width", width, (self.max_width or 9999), context['device'].max_image_width
eis = resize_external_image(url, width)
View
51 molly/apps/feature_vote/migrations/0001_initial.py
@@ -0,0 +1,51 @@
+# encoding: 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 'Feature'
+ db.create_table('feature_vote_feature', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user_name', self.gf('django.db.models.fields.TextField')()),
+ ('user_email', self.gf('django.db.models.fields.EmailField')(max_length=75)),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('description', self.gf('django.db.models.fields.TextField')()),
+ ('up_vote', self.gf('django.db.models.fields.IntegerField')(default=0)),
+ ('down_vote', self.gf('django.db.models.fields.IntegerField')(default=0)),
+ ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ('last_commented', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('is_public', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('is_removed', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ))
+ db.send_create_signal('feature_vote', ['Feature'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Feature'
+ db.delete_table('feature_vote_feature')
+
+
+ models = {
+ 'feature_vote.feature': {
+ 'Meta': {'ordering': "('-last_commented', '-created')", 'object_name': 'Feature'},
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'down_vote': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_removed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_commented': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'up_vote': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
+ 'user_name': ('django.db.models.fields.TextField', [], {})
+ }
+ }
+
+ complete_apps = ['feature_vote']
View
0  molly/apps/feature_vote/migrations/__init__.py
No changes.
View
12 molly/apps/feeds/importers/daily_info.py
@@ -33,7 +33,6 @@ def range(start, stop=None, step=1):
start, stop = step-step, start
while start < stop:
- print start
yield start
start += step
@@ -70,7 +69,6 @@ def update(self, feed):
r'(\d\d [A-Za-z]{3} \d{4}( - \d\d [A-Za-z]{3} \d{4})?: )?(.+)',
x_item.find('title').text,
)
- print match.group(3)
series.title = match.group(3)
except AttributeError:
series.title = x_item.find('title').text
@@ -87,8 +85,6 @@ def update(self, feed):
dt_start = parse_date(x_item.find(ns_xcal['dtstart']).text)
dt_end = parse_date(x_item.find(ns_xcal['dtend']).text)
- #print feed_data, '\n\n\n'
-
for i, dt in enumerate(x_item.findall(ns_dc['date'])):
item, created = Item.objects.get_or_create(
@@ -177,12 +173,6 @@ def handle_noargs(self, **options):
for x_item in feed_data.entries:
guid, last_modified = x_item.id, datetime(*x_item.date_parsed[:7])
- #print x_item.link
- #if x_item.link != 'http://www.dailyinfo.co.uk/events.php?colname=Lectures%2C+Seminars+and+Conferences&period=7&eventday=10&eventmonth=12&eventyear=2009#70276':
- # continue
-
- print x_item.items()
-
for i in items:
if i.guid == guid:
item = i
@@ -224,7 +214,6 @@ def handle_noargs(self, **options):
try:
item.location_point = Point(float(x_item.geo_long),
float(x_item.geo_lat))
- print x_item.geo_lat, x_item.geo_long
except AttributeError, ValueError:
for link in venue_et.findall('.//a'):
match = Command.GOOGLE_MAPS_LINK_RE.match(link.attrib.get('href', ''))
@@ -245,7 +234,6 @@ def handle_noargs(self, **options):
break
item.location_point = self.postcode_to_point(match.groups(0)[0])
- print item.location_point
break
location_data[venue_id] = item.location_name, item.location_address, item.location_point
View
1  molly/apps/feeds/importers/generic_rss.py
@@ -20,7 +20,6 @@ def update(self, feed):
feed_data = feedparser.parse(feed.rss_url)
try:
feed.last_modified = struct_to_datetime(feed_data.feed.updated_parsed)
- print "RRRRRRRRRRRRRRRRRRRRRRRRRRRR"
except:
feed.last_modified = parse_date(feed_data.headers.get('last-modified', datetime.now().strftime("%a, %d %b %Y %H:%M:%S +0000")))
View
234 molly/apps/feeds/migrations/0001_initial.py
@@ -0,0 +1,234 @@
+# encoding: 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 'Tag'
+ db.create_table('feeds_tag', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('value', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ))
+ db.send_create_signal('feeds', ['Tag'])
+
+ # Adding model 'Feed'
+ db.create_table('feeds_feed', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('unit', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
+ ('rss_url', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('last_modified', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('ptype', self.gf('django.db.models.fields.CharField')(max_length=1)),
+ ('provider', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ))
+ db.send_create_signal('feeds', ['Feed'])
+
+ # Adding M2M table for field tags on 'Feed'
+ db.create_table('feeds_feed_tags', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('feed', models.ForeignKey(orm['feeds.feed'], null=False)),
+ ('tag', models.ForeignKey(orm['feeds.tag'], null=False))
+ ))
+ db.create_unique('feeds_feed_tags', ['feed_id', 'tag_id'])
+
+ # Adding model 'vCard'
+ db.create_table('feeds_vcard', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('uri', self.gf('django.db.models.fields.TextField')()),
+ ('name', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('address', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('telephone', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('location', self.gf('django.contrib.gis.db.models.fields.PointField')(null=True)),
+ ('entity', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['places.Entity'], null=True, blank=True)),
+ ))
+ db.send_create_signal('feeds', ['vCard'])
+
+ # Adding model 'Series'
+ db.create_table('feeds_series', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('feed', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['feeds.Feed'])),
+ ('guid', self.gf('django.db.models.fields.TextField')()),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('unit', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['feeds.vCard'], null=True, blank=True)),
+ ))
+ db.send_create_signal('feeds', ['Series'])
+
+ # Adding M2M table for field tags on 'Series'
+ db.create_table('feeds_series_tags', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('series', models.ForeignKey(orm['feeds.series'], null=False)),
+ ('tag', models.ForeignKey(orm['feeds.tag'], null=False))
+ ))
+ db.create_unique('feeds_series_tags', ['series_id', 'tag_id'])
+
+ # Adding model 'Item'
+ db.create_table('feeds_item', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('feed', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['feeds.Feed'])),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('guid', self.gf('django.db.models.fields.TextField')()),
+ ('description', self.gf('django.db.models.fields.TextField')()),
+ ('link', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('last_modified', self.gf('django.db.models.fields.DateTimeField')()),
+ ('ptype', self.gf('django.db.models.fields.CharField')(max_length=16)),
+ ('organiser', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='organising_set', null=True, to=orm['feeds.vCard'])),
+ ('speaker', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='speaking_set', null=True, to=orm['feeds.vCard'])),
+ ('venue', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='venue_set', null=True, to=orm['feeds.vCard'])),
+ ('contact', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='contact_set', null=True, to=orm['feeds.vCard'])),
+ ('series', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['feeds.Series'], null=True, blank=True)),
+ ('ordinal', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('track', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('dt_start', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('dt_end', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('dt_has_time', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ))
+ db.send_create_signal('feeds', ['Item'])
+
+ # Adding M2M table for field tags on 'Item'
+ db.create_table('feeds_item_tags', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('item', models.ForeignKey(orm['feeds.item'], null=False)),
+ ('tag', models.ForeignKey(orm['feeds.tag'], null=False))
+ ))
+ db.create_unique('feeds_item_tags', ['item_id', 'tag_id'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Tag'
+ db.delete_table('feeds_tag')
+
+ # Deleting model 'Feed'
+ db.delete_table('feeds_feed')
+
+ # Removing M2M table for field tags on 'Feed'
+ db.delete_table('feeds_feed_tags')
+
+ # Deleting model 'vCard'
+ db.delete_table('feeds_vcard')
+
+ # Deleting model 'Series'
+ db.delete_table('feeds_series')
+
+ # Removing M2M table for field tags on 'Series'
+ db.delete_table('feeds_series_tags')
+
+ # Deleting model 'Item'
+ db.delete_table('feeds_item')
+
+ # Removing M2M table for field tags on 'Item'
+ db.delete_table('feeds_item_tags')
+
+
+ models = {
+ 'feeds.feed': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Feed'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'provider': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'ptype': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'rss_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['feeds.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'unit': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'})
+ },
+ 'feeds.item': {
+ 'Meta': {'ordering': "('-last_modified',)", 'object_name': 'Item'},
+ 'contact': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'contact_set'", 'null': 'True', 'to': "orm['feeds.vCard']"}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'dt_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'dt_has_time': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'dt_start': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['feeds.Feed']"}),
+ 'guid': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_modified': ('django.db.models.fields.DateTimeField', [], {}),
+ 'link': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'ordinal': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'organiser': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'organising_set'", 'null': 'True', 'to': "orm['feeds.vCard']"}),
+ 'ptype': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'series': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['feeds.Series']", 'null': 'True', 'blank': 'True'}),
+ 'speaker': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'speaking_set'", 'null': 'True', 'to': "orm['feeds.vCard']"}),
+ 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['feeds.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'track': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'venue': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'venue_set'", 'null': 'True', 'to': "orm['feeds.vCard']"})
+ },
+ 'feeds.series': {
+ 'Meta': {'object_name': 'Series'},
+ 'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['feeds.Feed']"}),
+ 'guid': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['feeds.Tag']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'unit': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['feeds.vCard']", 'null': 'True', 'blank': 'True'})
+ },
+ 'feeds.tag': {
+ 'Meta': {'object_name': 'Tag'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '128'})
+ },
+ 'feeds.vcard': {
+ 'Meta': {'object_name': 'vCard'},
+ 'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'entity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.Entity']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'location': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'telephone': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'uri': ('django.db.models.fields.TextField', [], {})
+ },
+ 'places.entity': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Entity'},
+ '_identifiers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['places.Identifier']", 'symmetrical': 'False'}),
+ '_metadata': ('django.db.models.fields.TextField', [], {'default': "'{}'"}),
+ 'absolute_url': ('django.db.models.fields.TextField', [], {}),
+ 'all_types': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'entities'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'all_types_completion': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'entities_completion'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'geometry': ('django.contrib.gis.db.models.fields.GeometryField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'identifier_scheme': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'identifier_value': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
+ 'is_stack': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_sublocation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'location': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.Entity']", 'null': 'True'}),
+ 'primary_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.EntityType']", 'null': 'True'}),
+ 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.Source']"}),
+ 'title': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'places.entitytype': {
+ 'Meta': {'ordering': "('verbose_name',)", 'object_name': 'EntityType'},
+ 'article': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'note': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'show_in_category_list': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'show_in_nearby_list': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'subtype_of': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'subtypes'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'subtype_of_completion': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'subtypes_completion'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'verbose_name': ('django.db.models.fields.TextField', [], {}),
+ 'verbose_name_plural': ('django.db.models.fields.TextField', [], {})
+ },
+ 'places.identifier': {
+ 'Meta': {'object_name': 'Identifier'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'scheme': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '256'})
+ },
+ 'places.source': {
+ 'Meta': {'object_name': 'Source'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'module_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
+ }
+ }
+
+ complete_apps = ['feeds']
View
0  molly/apps/feeds/migrations/__init__.py
No changes.
View
4 molly/apps/feeds/templates/rss/news/index.html
@@ -27,7 +27,9 @@ <h2 class="invisible">Search News</h2>
<div class="section">
- <h2>Feeds</h2>
+ <div class="header">
+ <h2>Feeds</h2>
+ </div>
<ul class="link-list">
{% for feed in feeds %}
<li {% if forloop.last %}class="round-bottom"{% endif %}>
View
16 molly/apps/feeds/templates/rss/news/item_detail.html
@@ -14,18 +14,18 @@
{% block title %}m.ox | News: {{ item.title }}{% endblock %}
{% block content %}
-
<div class="section">
- <h3>{{ item.title }}</h3>
-
- <div class="article"><div class="bubble pad-5" style="margin: 2px;">
- {{ description|safe }}
- <br />
+ <div class="header">
+ <h2>{{ item.title }}</h2>
+ <div style="font-size:1em; line-height:1.1em;">
+ {{ description|safe }}
+ <br />
<small><em>
{{ item.last_modified_local|date:"j M Y \a\t H:m" }}<br />
Link: <a href="{{ item.link }}" title="{{ item.title }}">{{ item.link }}</a>
</em></small>
- </div></div>
+ </div>
+ <div style="clear:both;"> </div>
+ </div>
</div>
-
{% endblock %}
View
3  molly/apps/feeds/templates/rss/news/item_list.html
@@ -13,8 +13,9 @@
{% block content %}
<div class="section">
+<div class="header">
<h2>{{ feed.title }}</h2>
-
+</div>
<ul class="link-list">
{% for item in feed.item_set.all %}
<li {% if forloop.last %}class="round-bottom"{% endif %}>
View
56 molly/apps/home/migrations/0001_initial.py
@@ -0,0 +1,56 @@
+# encoding: 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 'Config'
+ db.create_table('home_config', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('key', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('value', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('home', ['Config'])
+
+ # Adding model 'UserMessage'
+ db.create_table('home_usermessage', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('session_key', self.gf('django.db.models.fields.TextField')()),
+ ('message', self.gf('django.db.models.fields.TextField')()),
+ ('read', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('when', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ))
+ db.send_create_signal('home', ['UserMessage'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Config'
+ db.delete_table('home_config')
+
+ # Deleting model 'UserMessage'
+ db.delete_table('home_usermessage')
+
+
+ models = {
+ 'home.config': {
+ 'Meta': {'object_name': 'Config'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'key': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'value': ('django.db.models.fields.TextField', [], {})
+ },
+ 'home.usermessage': {
+ 'Meta': {'object_name': 'UserMessage'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'read': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'session_key': ('django.db.models.fields.TextField', [], {}),
+ 'when': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['home']
View
0  molly/apps/home/migrations/__init__.py
No changes.
View
1  molly/apps/home/templatetags/portal_misc.py
@@ -41,7 +41,6 @@ def oxp_id(value):
@register.filter(name="load_oxp_json")
def load_oxp_json(value):
- print value['uri']
return simplejson.load(urllib.urlopen(value['uri']+'.json'))[0]
@register.filter(name="oxp_portal_url")
View
178 molly/apps/places/migrations/0001_initial.py
@@ -0,0 +1,178 @@
+# encoding: 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 'Source'
+ db.create_table('places_source', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('module_name', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ('name', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ('last_updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ))
+ db.send_create_signal('places', ['Source'])
+
+ # Adding model 'EntityType'
+ db.create_table('places_entitytype', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('article', self.gf('django.db.models.fields.CharField')(max_length=2)),
+ ('verbose_name', self.gf('django.db.models.fields.TextField')()),
+ ('verbose_name_plural', self.gf('django.db.models.fields.TextField')()),
+ ('show_in_nearby_list', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('show_in_category_list', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('note', self.gf('django.db.models.fields.TextField')(null=True)),
+ ))
+ db.send_create_signal('places', ['EntityType'])
+
+ # Adding M2M table for field subtype_of on 'EntityType'
+ db.create_table('places_entitytype_subtype_of', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('from_entitytype', models.ForeignKey(orm['places.entitytype'], null=False)),
+ ('to_entitytype', models.ForeignKey(orm['places.entitytype'], null=False))
+ ))
+ db.create_unique('places_entitytype_subtype_of', ['from_entitytype_id', 'to_entitytype_id'])
+
+ # Adding M2M table for field subtype_of_completion on 'EntityType'
+ db.create_table('places_entitytype_subtype_of_completion', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('from_entitytype', models.ForeignKey(orm['places.entitytype'], null=False)),
+ ('to_entitytype', models.ForeignKey(orm['places.entitytype'], null=False))
+ ))
+ db.create_unique('places_entitytype_subtype_of_completion', ['from_entitytype_id', 'to_entitytype_id'])
+
+ # Adding model 'Identifier'
+ db.create_table('places_identifier', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('scheme', self.gf('django.db.models.fields.CharField')(max_length=32)),
+ ('value', self.gf('django.db.models.fields.CharField')(max_length=256)),
+ ))
+ db.send_create_signal('places', ['Identifier'])
+
+ # Adding model 'Entity'
+ db.create_table('places_entity', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('title', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('source', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['places.Source'])),
+ ('primary_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['places.EntityType'], null=True)),
+ ('location', self.gf('django.contrib.gis.db.models.fields.PointField')(null=True)),
+ ('geometry', self.gf('django.contrib.gis.db.models.fields.GeometryField')(null=True)),
+ ('_metadata', self.gf('django.db.models.fields.TextField')(default='{}')),
+ ('absolute_url', self.gf('django.db.models.fields.TextField')()),
+ ('parent', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['places.Entity'], null=True)),
+ ('is_sublocation', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('is_stack', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('identifier_scheme', self.gf('django.db.models.fields.CharField')(max_length=32)),
+ ('identifier_value', self.gf('django.db.models.fields.CharField')(max_length=256)),
+ ))
+ db.send_create_signal('places', ['Entity'])
+
+ # Adding M2M table for field all_types on 'Entity'
+ db.create_table('places_entity_all_types', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('entity', models.ForeignKey(orm['places.entity'], null=False)),
+ ('entitytype', models.ForeignKey(orm['places.entitytype'], null=False))
+ ))
+ db.create_unique('places_entity_all_types', ['entity_id', 'entitytype_id'])
+
+ # Adding M2M table for field all_types_completion on 'Entity'
+ db.create_table('places_entity_all_types_completion', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('entity', models.ForeignKey(orm['places.entity'], null=False)),
+ ('entitytype', models.ForeignKey(orm['places.entitytype'], null=False))
+ ))
+ db.create_unique('places_entity_all_types_completion', ['entity_id', 'entitytype_id'])
+
+ # Adding M2M table for field _identifiers on 'Entity'
+ db.create_table('places_entity__identifiers', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('entity', models.ForeignKey(orm['places.entity'], null=False)),
+ ('identifier', models.ForeignKey(orm['places.identifier'], null=False))
+ ))
+ db.create_unique('places_entity__identifiers', ['entity_id', 'identifier_id'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Source'
+ db.delete_table('places_source')
+
+ # Deleting model 'EntityType'
+ db.delete_table('places_entitytype')
+
+ # Removing M2M table for field subtype_of on 'EntityType'
+ db.delete_table('places_entitytype_subtype_of')
+
+ # Removing M2M table for field subtype_of_completion on 'EntityType'
+ db.delete_table('places_entitytype_subtype_of_completion')
+
+ # Deleting model 'Identifier'
+ db.delete_table('places_identifier')
+
+ # Deleting model 'Entity'
+ db.delete_table('places_entity')
+
+ # Removing M2M table for field all_types on 'Entity'
+ db.delete_table('places_entity_all_types')
+
+ # Removing M2M table for field all_types_completion on 'Entity'
+ db.delete_table('places_entity_all_types_completion')
+
+ # Removing M2M table for field _identifiers on 'Entity'
+ db.delete_table('places_entity__identifiers')
+
+
+ models = {
+ 'places.entity': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Entity'},
+ '_identifiers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['places.Identifier']", 'symmetrical': 'False'}),
+ '_metadata': ('django.db.models.fields.TextField', [], {'default': "'{}'"}),
+ 'absolute_url': ('django.db.models.fields.TextField', [], {}),
+ 'all_types': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'entities'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'all_types_completion': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'entities_completion'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'geometry': ('django.contrib.gis.db.models.fields.GeometryField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'identifier_scheme': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'identifier_value': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
+ 'is_stack': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_sublocation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'location': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.Entity']", 'null': 'True'}),
+ 'primary_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.EntityType']", 'null': 'True'}),
+ 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['places.Source']"}),
+ 'title': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+ },
+ 'places.entitytype': {
+ 'Meta': {'ordering': "('verbose_name',)", 'object_name': 'EntityType'},
+ 'article': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'note': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'show_in_category_list': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'show_in_nearby_list': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'subtype_of': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'subtypes'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'subtype_of_completion': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'subtypes_completion'", 'blank': 'True', 'to': "orm['places.EntityType']"}),
+ 'verbose_name': ('django.db.models.fields.TextField', [], {}),
+ 'verbose_name_plural': ('django.db.models.fields.TextField', [], {})
+ },
+ 'places.identifier': {
+ 'Meta': {'object_name': 'Identifier'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'scheme': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '256'})
+ },
+ 'places.source': {
+ 'Meta': {'object_name': 'Source'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'module_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
+ }
+ }
+
+ complete_apps = ['places']
View
0  molly/apps/places/migrations/__init__.py
No changes.
View
124 molly/apps/podcasts/migrations/0001_initial.py
@@ -0,0 +1,124 @@
+# encoding: 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 'PodcastCategory'
+ db.create_table('podcasts_podcastcategory', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('name', self.gf('django.db.models.fields.TextField')()),
+ ('order', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ))
+ db.send_create_signal('podcasts', ['PodcastCategory'])
+
+ # Adding model 'Podcast'
+ db.create_table('podcasts_podcast', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('title', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('description', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('rss_url', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('last_updated', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ('category', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['podcasts.PodcastCategory'], null=True)),
+ ('most_recent_item_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
+ ('medium', self.gf('django.db.models.fields.CharField')(max_length=8, null=True)),
+ ('provider', self.gf('django.db.models.fields.TextField')()),
+ ('license', self.gf('django.db.models.fields.URLField')(max_length=200, null=True)),
+ ('logo', self.gf('django.db.models.fields.URLField')(max_length=200, null=True)),
+ ))
+ db.send_create_signal('podcasts', ['Podcast'])
+
+ # Adding model 'PodcastItem'
+ db.create_table('podcasts_podcastitem', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('podcast', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['podcasts.Podcast'])),
+ ('title', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('description', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('published_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
+ ('author', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ('duration', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
+ ('guid', self.gf('django.db.models.fields.TextField')()),
+ ('order', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('license', self.gf('django.db.models.fields.URLField')(max_length=200, null=True)),
+ ))
+ db.send_create_signal('podcasts', ['PodcastItem'])
+
+ # Adding model 'PodcastEnclosure'
+ db.create_table('podcasts_podcastenclosure', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('podcast_item', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['podcasts.PodcastItem'])),
+ ('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('length', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('mimetype', self.gf('django.db.models.fields.TextField')(null=True)),
+ ))
+ db.send_create_signal('podcasts', ['PodcastEnclosure'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'PodcastCategory'
+ db.delete_table('podcasts_podcastcategory')
+
+ # Deleting model 'Podcast'
+ db.delete_table('podcasts_podcast')
+
+ # Deleting model 'PodcastItem'
+ db.delete_table('podcasts_podcastitem')
+
+ # Deleting model 'PodcastEnclosure'
+ db.delete_table('podcasts_podcastenclosure')
+
+
+ models = {
+ 'podcasts.podcast': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Podcast'},
+ 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['podcasts.PodcastCategory']", 'null': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'license': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
+ 'logo': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
+ 'medium': ('django.db.models.fields.CharField', [], {'max_length': '8', 'null': 'True'}),
+ 'most_recent_item_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'provider': ('django.db.models.fields.TextField', [], {}),
+ 'rss_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {'null': 'True'})
+ },
+ 'podcasts.podcastcategory': {
+ 'Meta': {'ordering': "('order', 'name')", 'object_name': 'PodcastCategory'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'})
+ },
+ 'podcasts.podcastenclosure': {
+ 'Meta': {'object_name': 'PodcastEnclosure'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'mimetype': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'podcast_item': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['podcasts.PodcastItem']"}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+ },
+ 'podcasts.podcastitem': {
+ 'Meta': {'object_name': 'PodcastItem'},
+ 'author': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'duration': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
+ 'guid': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'license': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'podcast': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['podcasts.Podcast']"}),
+ 'published_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {'null': 'True'})
+ }
+ }
+
+ complete_apps = ['podcasts']
View
0  molly/apps/podcasts/migrations/__init__.py
No changes.
View
1  molly/apps/podcasts/models.py
@@ -89,6 +89,7 @@ class Meta:
'video/mpeg': 'MPEG video',
'video/x-m4v': 'MP4 video',
'audio/x-m4a': 'MP4 audio',
+ 'application/epub+zip': 'ePub eBook'
}
class PodcastEnclosure(models.Model):
View
8 molly/apps/podcasts/templates/podcasts/index.html
@@ -45,14 +45,6 @@ <h2 class="invisible">Search Podcasts</h2>
</form>
{# End Podcasts Search #}
-
-
-
-<ul class="stand-alone link-list round-top">
- <li><a href="{% url podcasts:podcast "top-downloads" %}">Top downloads from iTunes U</a></li>
-</ul>
-
-
<div class="section" >
<div class="header">
<h2>By division</h2>
View
6 molly/apps/sakai/views.py
@@ -390,11 +390,7 @@ def initial_context(self, request, id):
data = request.raw_post_data if request.method == 'POST' else None
response = request.urlopen(url, data)
evaluation = etree.parse(response, parser = etree.HTMLParser(recover=False))
-
- print etree.tostring(evaluation)
evaluation = transform(evaluation, 'sakai/evaluation/detail.xslt', {'id': id})
-
- print etree.tostring(evaluation)
# The evaluations tool doesn't give us a non-OK status if we need to authenticate. Instead,
# we need to check for the login box (handily picked out by the XSL stylesheet).
@@ -408,7 +404,6 @@ def initial_context(self, request, id):
'response_url': response.geturl(),
}
add_children_to_context(evaluation, context)
- print context['state_message']
return context
@BreadcrumbFactory
@@ -439,7 +434,6 @@ def handle_GET(self, request, context, id):
return self.render(request, context, 'sakai/evaluation/detail')
def handle_POST(self, request, context, id):
- print context['response_url']
if context['response_url'].startswith(self.build_url('direct/eval-evaluation/%s/take_eval?' % id)):
return self.handle_GET(request, context, id)
View
35 molly/apps/url_shortener/migrations/0001_initial.py
@@ -0,0 +1,35 @@
+# encoding: 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 'ShortenedURL'
+ db.create_table('url_shortener_shortenedurl', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('path', self.gf('django.db.models.fields.TextField')()),
+ ('slug', self.gf('django.db.models.fields.TextField')(max_length=7)),
+ ))
+ db.send_create_signal('url_shortener', ['ShortenedURL'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'ShortenedURL'
+ db.delete_table('url_shortener_shortenedurl')
+
+
+ models = {
+ 'url_shortener.shortenedurl': {
+ 'Meta': {'object_name': 'ShortenedURL'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'path': ('django.db.models.fields.TextField', [], {}),
+ 'slug': ('django.db.models.fields.TextField', [], {'max_length': '7'})
+ }
+ }
+
+ complete_apps = ['url_shortener']
View
0  molly/apps/url_shortener/migrations/__init__.py
No changes.
View
1  molly/apps/url_shortener/views.py
@@ -69,7 +69,6 @@ def breadcrumb(cls, request, context):
def handle_GET(cls, request, context):
- print context['complex_shorten']
try:
path = request.GET['path']
except (KeyError):
View
73 molly/apps/weather/migrations/0001_initial.py
@@ -0,0 +1,73 @@
+# encoding: 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 'Weather'
+ db.create_table('weather_weather', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('location_id', self.gf('django.db.models.fields.CharField')(max_length=16)),
+ ('ptype', self.gf('django.db.models.fields.CharField')(max_length=1)),
+ ('name', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('outlook', self.gf('django.db.models.fields.CharField')(max_length=3, null=True)),
+ ('published_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
+ ('observed_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
+ ('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ('temperature', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('wind_direction', self.gf('django.db.models.fields.CharField')(max_length=3, null=True)),
+ ('wind_speed', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('humidity', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('pressure', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
+ ('pressure_state', self.gf('django.db.models.fields.CharField')(max_length=1, null=True)),
+ ('visibility', self.gf('django.db.models.fields.CharField')(max_length=2, null=True)),
+ ('location', self.gf('django.contrib.gis.db.models.fields.PointField')(null=True)),
+ ('min_temperature', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('max_temperature', self.gf('django.db.models.fields.IntegerField')(null=True)),
+ ('uv_risk', self.gf('django.db.models.fields.CharField')(max_length=1, null=True)),
+ ('pollution', self.gf('django.db.models.fields.CharField')(max_length=1, null=True)),
+ ('sunset', self.gf('django.db.models.fields.TimeField')(null=True)),
+ ('sunrise', self.gf('django.db.models.fields.TimeField')(null=True)),
+ ))
+ db.send_create_signal('weather', ['Weather'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Weather'
+ db.delete_table('weather_weather')
+
+
+ models = {
+ 'weather.weather': {
+ 'Meta': {'object_name': 'Weather'},
+ 'humidity': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'location': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True'}),
+ 'location_id': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'max_temperature': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'min_temperature': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'observed_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'outlook': ('django.db.models.fields.CharField', [], {'max_length': '3', 'null': 'True'}),
+ 'pollution': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True'}),
+ 'pressure': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
+ 'pressure_state': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True'}),
+ 'ptype': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'published_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+ 'sunrise': ('django.db.models.fields.TimeField', [], {'null': 'True'}),
+ 'sunset': ('django.db.models.fields.TimeField', [], {'null': 'True'}),
+ 'temperature': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'uv_risk': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True'}),
+ 'visibility': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True'}),
+ 'wind_direction': ('django.db.models.fields.CharField', [], {'max_length': '3', 'null': 'True'}),
+ 'wind_speed': ('django.db.models.fields.IntegerField', [], {'null': 'True'})
+ }
+ }
+
+ complete_apps = ['weather']
View
0  molly/apps/weather/migrations/__init__.py
No changes.
View
43 molly/apps/webcams/migrations/0001_initial.py
@@ -0,0 +1,43 @@
+# encoding: 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 'Webcam'
+ db.create_table('webcams_webcam', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)),
+ ('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
+ ('fetch_period', self.gf('django.db.models.fields.PositiveIntegerField')()),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('description', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('credit', self.gf('django.db.models.fields.TextField')(null=True)),
+ ))
+ db.send_create_signal('webcams', ['Webcam'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Webcam'
+ db.delete_table('webcams_webcam')
+
+
+ models = {
+ 'webcams.webcam': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Webcam'},
+ 'credit': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'fetch_period': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.TextField', [], {}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+ }
+ }
+
+ complete_apps = ['webcams']
View
0  molly/apps/webcams/migrations/__init__.py
No changes.
View
214 molly/auth/migrations/0001_initial.py
@@ -0,0 +1,214 @@
+# encoding: 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 'Permission'
+ db.create_table('auth_permission', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('name', self.gf('django.db.models.fields.CharField')(max_length=50)),
+ ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])),
+ ('codename', self.gf('django.db.models.fields.CharField')(max_length=100)),
+ ))
+ db.send_create_signal('auth', ['Permission'])
+
+ # Adding unique constraint on 'Permission', fields ['content_type', 'codename']
+ db.create_unique('auth_permission', ['content_type_id', 'codename'])
+
+ # Adding model 'Group'
+ db.create_table('auth_group', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=80)),
+ ))
+ db.send_create_signal('auth', ['Group'])
+
+ # Adding M2M table for field permissions on 'Group'
+ db.create_table('auth_group_permissions', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('group', models.ForeignKey(orm['auth.group'], null=False)),
+ ('permission', models.ForeignKey(orm['auth.permission'], null=False))
+ ))
+ db.create_unique('auth_group_permissions', ['group_id', 'permission_id'])
+
+ # Adding model 'User'
+ db.create_table('auth_user', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)),
+ ('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
+ ('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)),
+ ('email', self.gf('django.db.models.fields.EmailField')(max_length=75, blank=True)),
+ ('password', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)),
+ ('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+ ('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+ ))
+ db.send_create_signal('auth', ['User'])
+
+ # Adding M2M table for field groups on 'User'
+ db.create_table('auth_user_groups', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('user', models.ForeignKey(orm['auth.user'], null=False)),
+ ('group', models.ForeignKey(orm['auth.group'], null=False))
+ ))
+ db.create_unique('auth_user_groups', ['user_id', 'group_id'])
+
+ # Adding M2M table for field user_permissions on 'User'
+ db.create_table('auth_user_user_permissions', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('user', models.ForeignKey(orm['auth.user'], null=False)),
+ ('permission', models.ForeignKey(orm['auth.permission'], null=False))
+ ))
+ db.create_unique('auth_user_user_permissions', ['user_id', 'permission_id'])
+
+ # Adding model 'Message'
+ db.create_table('auth_message', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='_message_set', to=orm['auth.User'])),
+ ('message', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('auth', ['Message'])
+
+ # Adding model 'UserIdentifier'
+ db.create_table('auth_useridentifier', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+ ('namespace', self.gf('django.db.models.fields.CharField')(max_length=32)),
+ ('value', self.gf('django.db.models.fields.CharField')(max_length=128)),
+ ('updated', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ))
+ db.send_create_signal('auth', ['UserIdentifier'])
+
+ # Adding model 'UserSession'
+ db.create_table('auth_usersession', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+ ('secure_session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
+ ('device_name', self.gf('django.db.models.fields.TextField')()),
+ ('last_used', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
+ ))
+ db.send_create_signal('auth', ['UserSession'])
+
+ # Adding model 'ExternalServiceToken'
+ db.create_table('auth_externalservicetoken', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
+ ('namespace', self.gf('django.db.models.fields.CharField')(max_length=32)),
+ ('authorized', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('value', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('auth', ['ExternalServiceToken'])
+
+
+ def backwards(self, orm):
+
+ # Removing unique constraint on 'Permission', fields ['content_type', 'codename']
+ db.delete_unique('auth_permission', ['content_type_id', 'codename'])
+
+ # Deleting model 'Permission'
+ db.delete_table('auth_permission')
+
+ # Deleting model 'Group'
+ db.delete_table('auth_group')
+
+ # Removing M2M table for field permissions on 'Group'
+ db.delete_table('auth_group_permissions')
+
+ # Deleting model 'User'
+ db.delete_table('auth_user')
+
+ # Removing M2M table for field groups on 'User'
+ db.delete_table('auth_user_groups')
+
+ # Removing M2M table for field user_permissions on 'User'
+ db.delete_table('auth_user_user_permissions')
+
+ # Deleting model 'Message'
+ db.delete_table('auth_message')
+
+ # Deleting model 'UserIdentifier'
+ db.delete_table('auth_useridentifier')
+
+ # Deleting model 'UserSession'
+ db.delete_table('auth_usersession')
+
+ # Deleting model 'ExternalServiceToken'
+ db.delete_table('auth_externalservicetoken')
+
+
+ models = {
+ 'auth.externalservicetoken': {
+ 'Meta': {'object_name': 'ExternalServiceToken'},
+ 'authorized': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'namespace': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+ 'value': ('django.db.models.fields.TextField', [], {})
+ },
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.message': {
+ 'Meta': {'object_name': 'Message'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'_message_set'", 'to': "orm['auth.User']"})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'auth.useridentifier': {
+ 'Meta': {'object_name': 'UserIdentifier'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'namespace': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '128'})
+ },
+ 'auth.usersession': {
+ 'Meta': {'ordering': "('user', 'device_name', 'secure_session_key')", 'object_name': 'UserSession'},
+ 'device_name': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_used': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'secure_session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ }
+ }
+
+ complete_apps = ['auth']
View
0  molly/auth/migrations/__init__.py
No changes.
View
3  molly/auth/views.py
@@ -36,8 +36,6 @@ def __call__(self, request, *args, **kwargs):
return TimedOutView(request, self, *args, **kwargs)
request.secure_session['last_accessed'] = datetime.now()
- print type(self).__mro__
-
return super(SecureView, self).__call__(request, *args, **kwargs)
class TimedOutView(BaseView):
@@ -114,7 +112,6 @@ def handle_POST(self, request, context):
forms = context['form'], context['user_sessions'], context['external_service_tokens']
if not all(form.is_valid() for form in forms):
- print [form.errors for form in forms]
return self.render(request, context, 'auth/index')
if context['has_pin'] and form.cleaned_data['old_pin'] != request.secure_session['pin']:
View
53 molly/batch_processing/migrations/0001_initial.py
@@ -0,0 +1,53 @@
+# encoding: 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 'Batch'
+ db.create_table('batch_processing_batch', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('title', self.gf('django.db.models.fields.TextField')()),
+ ('local_name', self.gf('django.db.models.fields.TextField')()),
+ ('provider_name', self.gf('django.db.models.fields.TextField')()),
+ ('method_name', self.gf('django.db.models.fields.TextField')()),
+ ('cron_stmt', self.gf('django.db.models.fields.TextField')()),
+ ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)),
+ ('_metadata', self.gf('django.db.models.fields.TextField')(default='null')),
+ ('last_run', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('pending', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('currently_running', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('log', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ))
+ db.send_create_signal('batch_processing', ['Batch'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Batch'
+ db.delete_table('batch_processing_batch')
+
+
+ models = {
+ 'batch_processing.batch': {
+ 'Meta': {'object_name': 'Batch'},
+ '_metadata': ('django.db.models.fields.TextField', [], {'default': "'null'"}),
+ 'cron_stmt': ('django.db.models.fields.TextField', [], {}),
+ 'currently_running': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_run': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'local_name': ('django.db.models.fields.TextField', [], {}),
+ 'log': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'method_name': ('django.db.models.fields.TextField', [], {}),
+ 'pending': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'provider_name': ('django.db.models.fields.TextField', [], {}),
+ 'title': ('django.db.models.fields.TextField', [], {})
+ }
+ }
+
+ complete_apps = ['batch_processing']
View
0  molly/batch_processing/migrations/__init__.py
No changes.
View
43 molly/geolocation/migrations/0001_initial.py
@@ -0,0 +1,43 @@
+# encoding: 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 'Geocode'
+ db.create_table('geolocation_geocode', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('lon', self.gf('django.db.models.fields.FloatField')(null=True)),
+ ('lat', self.gf('django.db.models.fields.FloatField')(null=True)),
+ ('query', self.gf('django.db.models.fields.TextField')(null=True)),
+ ('_results', self.gf('django.db.models.fields.TextField')(default='null')),
+ ('updated', self.gf('django.db.models.fields.DateTimeField')()),
+ ('local_name', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('geolocation', ['Geocode'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Geocode'
+ db.delete_table('geolocation_geocode')
+
+
+ models = {
+ 'geolocation.geocode': {
+ 'Meta': {'object_name': 'Geocode'},
+ '_results': ('django.db.models.fields.TextField', [], {'default': "'null'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lat': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+ 'local_name': ('django.db.models.fields.TextField', [], {}),
+ 'lon': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+ 'query': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+ 'updated': ('django.db.models.fields.DateTimeField', [], {})
+ }
+ }
+
+ complete_apps = ['geolocation']
View
0  molly/geolocation/migrations/__init__.py
No changes.
View
2  molly/geolocation/utils.py
@@ -51,7 +51,6 @@ def h(*args, **kwargs):
def geocode(query, providers):
results = []
for provider in providers:
- print "PROVIDER", provider
results += provider.geocode(query)
return results
@@ -59,7 +58,6 @@ def geocode(query, providers):
def reverse_geocode(lon, lat, providers):
results = []
for provider in providers:
- print "PROVIDER", provider
results += provider.reverse_geocode(lon, lat)
return results
View
3  molly/logger/config.py
@@ -14,9 +14,8 @@ def initialise_logging():
mod = __import__(log_module_name, globals(), locals(), ['config_logging'], -1)
config_logging = mod.config_logging
except (ImportError, AttributeError):
- print "No config for %s" % app_name
+ pass
else:
- print "Found config for %s" % app_name
config_logging()
View
4 molly/logger/server.py
@@ -18,17 +18,13 @@ def __init__(self):
self.listener_thread = threading.Thread(target=self.listener)
self.listener_thread.start()
-
-
-
def listener(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while not self.close_down_event.is_set():
try:
sock.bind(('localhost', logging.handlers.DEFAULT_TCP_LOGGING_PORT))
- print "Bound"
except socket.error:
time.sleep(1)
else:
View
22 molly/osm/management/commands/generate_markers.py
@@ -27,13 +27,8 @@ def handle_noargs(self, **options):
os.write(f, out)
os.close(f)
- outfile = os.path.join(marker_dir, '%s-%d.png' % (color[0], index))
- print infile, outfile
- subprocess.call([
- 'inkscape',
- infile,
- '--export-png=%s' % outfile,
- ])
+ filename = os.path.join(marker_dir, '%s-%d.png' % (color[0], index))
+ subprocess.call(['convert', '-background', 'none', infile, filename])
os.unlink(infile)
template = open(os.path.join(os.path.dirname(__file__), 'markers', 'star-base.svg')).read()
@@ -41,13 +36,10 @@ def handle_noargs(self, **options):
for color in MARKER_COLORS:
out = template % {'fill': color[1], 'stroke': color[2]}
- f = open('out.svg', 'w')
- f.write(out)
- f.close()
+ f, infile = tempfile.mkstemp()
+ os.write(f, out)
+ os.close(f)
filename = os.path.join(marker_dir, '%s-star.png' % color[0])
- subprocess.call([
- 'inkscape',
- 'out.svg',
- '--export-png=%s' % filename,
- ])
+ subprocess.call(['convert', '-background', 'none', infile, filename])
+ os.unlink(infile)
View
142 molly/osm/migrations/0001_initial.py
@@ -0,0 +1,142 @@
+# encoding: 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 'GeneratedMap'
+ db.create_table('osm_generatedmap', (
+ ('hash', self.gf('django.db.models.fields.CharField')(unique=True, max_length=16, primary_key=True)),
+ ('generated', self.gf('django.db.models.fields.DateTimeField')()),
+ ('last_accessed', self.gf('django.db.models.fields.DateTimeField')()),
+ ('_metadata', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('faulty', self.gf('django.db.models.fields.BooleanField')(default=False)),