Initial commit

This commit is contained in:
Ryan McGrath 2010-10-27 14:53:51 -04:00
commit d5c605e4ad
22 changed files with 1372 additions and 0 deletions

62
redditors/models.py Normal file
View file

@ -0,0 +1,62 @@
from datetime import datetime, timedelta
from django.contrib.gis.db import models
from django.contrib.auth.models import User
class LocationCategory(models.Model):
"""
Table/class to hold categories for locations to fall under. Let this
be fairly agnostic of everything.
"""
name = models.CharField(max_length = 200)
def __str__(self):
return "%s" % str(self.name)
class Location(models.Model):
"""
Locations, yo. Street Address is optional, don't make the user
have to fuck with something they don't know offhand unless they care.
Category is self explanatory, geometry is a GeoDjango model type to handle
storing lat/long coordinates for distance equations.
"""
name = models.CharField(max_length=200)
street_address = models.CharField(max_length=200, blank=True)
category = models.ForeignKey(LocationCategory, blank=True, null=True)
geometry = models.PointField(srid=4326)
objects = models.GeoManager()
def __str__(self):
return "%s" % str(self.name)
def get_recent_checkins_count(self):
"""
Tally up how many checkins this location had in the past day.
"""
print self.checkin_set.filter(timestamp__gte = datetime.now() + timedelta(days=-1))
return self.checkin_set.filter(timestamp__gte = datetime.now() + timedelta(days=-1)).count()
def address_for_geocode(self):
return self.street_address.replace(" ", "+")
class Checkin(models.Model):
"""
Checkin model - pretty self explanatory all around.
"""
user = models.ForeignKey(User)
location = models.ForeignKey(Location)
timestamp = models.DateTimeField(auto_now=True)
estimated_time_here = models.CharField(max_length=200, blank=True, null=True)
identify_by = models.CharField(max_length=200, blank=True, null=True)
class Tip(models.Model):
"""
Tips - again, fairly self explanatory.
"""
tip = models.TextField(blank=False)
user = models.ForeignKey(User)
timestamp = models.DateTimeField(auto_now=True)
location = models.ForeignKey(Location)
def __str__(self):
return "%s" % str(self.title)