gremmie@1: """ gremmie@1: Models for the member map application. gremmie@1: """ gremmie@1: from django.db import models gremmie@1: from django.contrib.auth.models import User gremmie@1: from django.template.loader import render_to_string gremmie@1: from django.template.defaultfilters import escapejs gremmie@1: import django.utils.simplejson as json gremmie@1: bgneal@153: from core.markup import site_markup gremmie@1: bgneal@153: gremmie@1: class MapEntry(models.Model): gremmie@1: """Represents a user's entry on the map.""" gremmie@1: user = models.ForeignKey(User) gremmie@1: location = models.CharField(max_length=255) gremmie@1: lat = models.FloatField() gremmie@1: lon = models.FloatField() gremmie@1: message = models.TextField(blank=True) gremmie@1: json = models.TextField(blank=True) gremmie@1: date_updated = models.DateTimeField(auto_now_add=True) gremmie@1: gremmie@1: def __unicode__(self): gremmie@1: return u'Entry for %s' % self.user.username gremmie@1: gremmie@1: class Meta: gremmie@1: ordering = ('-date_updated', ) gremmie@1: verbose_name_plural = 'map entries' gremmie@1: gremmie@1: def save(self, force_insert=False, force_update=False): bgneal@153: msg = render_to_string('membermap/markdown.html', { bgneal@153: 'user': self.user, bgneal@153: 'msg': site_markup(self.message)}).strip() bgneal@153: gremmie@1: self.json = json.dumps({'name': self.user.username, gremmie@1: 'lat': '%10.6f' % self.lat, gremmie@1: 'lon': '%10.6f' % self.lon, gremmie@1: 'message': msg, gremmie@1: }) gremmie@1: super(MapEntry, self).save(force_insert, force_update) gremmie@1: