view membermap/models.py @ 629:f4c043cf55ac

Wiki integration. Requests don't always have sessions. In particular this occurs when a request is made without a trailing slash. The Common middleware redirects when this happens, and the middleware process_request() processing stops before a session can get added. So just set an attribute on the request object for each operation. This seemed weird to me at first, but there are plenty of examples of this in the Django code base already.
author Brian Neal <bgneal@gmail.com>
date Tue, 13 Nov 2012 13:50:06 -0600
parents ee87ea74d46b
children 6164cc091649
line wrap: on
line source
"""
Models for the member map application.
"""
import datetime
from django.db import models
from django.contrib.auth.models import User

from core.markup import site_markup


class MapEntry(models.Model):
    """Represents a user's entry on the map."""
    user = models.ForeignKey(User)
    location = models.CharField(max_length=255)
    lat = models.FloatField()
    lon = models.FloatField()
    message = models.TextField(blank=True)
    html = models.TextField(blank=True)
    date_updated = models.DateTimeField()

    def __unicode__(self):
        return u'Map entry for %s' % self.user.username

    class Meta:
        ordering = ('-date_updated', )
        verbose_name_plural = 'map entries'

    def save(self, *args, **kwargs):
        self.html = site_markup(self.message)
        self.date_updated = datetime.datetime.now()
        super(MapEntry, self).save(*args, **kwargs)