Mercurial > public > sg101
view gpp/weblinks/models.py @ 198:7e3ed3eb9b99
Fix #71: problems with editing existing gcalendar dates; the date format wasn't what the datepicker expected.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 11 Apr 2010 17:58:09 +0000 |
parents | fa7d82bfb100 |
children | b4305e18d3af |
line wrap: on
line source
""" This module contains the models for the weblinks application. """ from django.db import models from django.contrib import auth class Category(models.Model): """Links belong to categories""" title = models.CharField(max_length=64) description = models.TextField(blank=True) count = models.IntegerField(default=0) def __unicode__(self): return self.title class Meta: verbose_name_plural = 'Categories' ordering = ('title', ) class PublicLinkManager(models.Manager): """The manager for all public links.""" def get_query_set(self): return super(PublicLinkManager, self).get_query_set().filter( is_public=True).select_related() class Link(models.Model): """Model to represent a web link""" category = models.ForeignKey(Category) title = models.CharField(max_length=128) url = models.URLField(verify_exists=False, db_index=True) description = models.TextField(blank=True) user = models.ForeignKey(auth.models.User) date_added = models.DateField(auto_now_add=True) hits = models.IntegerField(default=0) is_public = models.BooleanField(default=False, db_index=True) # Managers: objects = models.Manager() public_objects = PublicLinkManager() class Meta: ordering = ('title', ) def __unicode__(self): return self.title @models.permalink def get_absolute_url(self): return ('weblinks-link_detail', [str(self.id)]) class FlaggedLinkManager(models.Manager): def create(self, link, user): flagged_link = FlaggedLink(link = link, user = user, approved = False) flagged_link.save() class FlaggedLink(models.Model): """Model to represent links that have been flagged as broken by users""" link = models.ForeignKey(Link) user = models.ForeignKey(auth.models.User) date_flagged = models.DateField(auto_now_add = True) approved = models.BooleanField(default = False, help_text = 'Check this and save to remove the referenced link from the database') objects = FlaggedLinkManager() def save(self, *args, **kwargs): if self.approved: self.link.delete() self.delete() else: super(FlaggedLink, self).save(*args, **kwargs) def url(self): return self.link.url def get_link_url(self): return '<a href="%s">Link #%d</a>' % (self.link.get_absolute_url(), self.link.id) get_link_url.allow_tags = True get_link_url.short_description = "View Link on Site" def __unicode__(self): return self.link.title class Meta: ordering = ('-date_flagged', )