mirror of https://github.com/scrapy/scrapy.git
Removing link application, was too much overkill to the functionality needed
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40105
This commit is contained in:
parent
9dd144f487
commit
d4337610d9
|
|
@ -1,107 +0,0 @@
|
|||
from datetime import datetime
|
||||
|
||||
from django.db import models
|
||||
from django.template.defaultfilters import slugify
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
class Group(models.Model):
|
||||
name = models.CharField(_("name"), max_length=64, core=True, blank=False)
|
||||
slug = models.SlugField(_("slug"), editable=False, unique=True,
|
||||
prepopulate_from=("name",))
|
||||
|
||||
# automatic dates
|
||||
created = models.DateTimeField(_("created"), core=True, editable=False)
|
||||
updated = models.DateTimeField(_("updated"), core=True, editable=False)
|
||||
|
||||
def save(self):
|
||||
if not self.id:
|
||||
self.created = datetime.now()
|
||||
self.updated = datetime.now()
|
||||
self.slug = slugify(self.name)
|
||||
super(Group, self).save()
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("group")
|
||||
verbose_name_plural = _("groups")
|
||||
|
||||
class Admin:
|
||||
list_display = ("name", "slug",)
|
||||
|
||||
|
||||
class Link(models.Model):
|
||||
text = models.CharField(_("text"), max_length=1024, core=True, blank=False)
|
||||
address = models.CharField(_("address"), max_length=1024, core=True,
|
||||
blank=False)
|
||||
|
||||
# automatic dates
|
||||
created = models.DateTimeField(core=True, editable=False)
|
||||
updated = models.DateTimeField(core=True, editable=False)
|
||||
|
||||
def save(self):
|
||||
if not self.id:
|
||||
self.created = datetime.now()
|
||||
self.updated = datetime.now()
|
||||
super(Link, self).save()
|
||||
|
||||
def __unicode__(self):
|
||||
return self.address
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("link")
|
||||
verbose_name_plural = _("links")
|
||||
|
||||
class Admin:
|
||||
list_display = ("text", "address",)
|
||||
|
||||
|
||||
class GroupLink(models.Model):
|
||||
group = models.ForeignKey(Group, core=True, null=False, blank=False)
|
||||
link = models.ForeignKey(Link, core=True, null=False, blank=False)
|
||||
position = models.IntegerField(_("position"), core=True, default=0)
|
||||
|
||||
# automatic dates
|
||||
created = models.DateTimeField(core=True, editable=False)
|
||||
updated = models.DateTimeField(core=True, editable=False)
|
||||
|
||||
@property
|
||||
def address(self):
|
||||
return self.link.address
|
||||
|
||||
@property
|
||||
def text(self):
|
||||
return self.link.text
|
||||
|
||||
def position_up(self):
|
||||
self.position += 1
|
||||
self.save()
|
||||
|
||||
def position_down(self):
|
||||
self.position -= 1
|
||||
self.save()
|
||||
|
||||
def save(self):
|
||||
if not self.id:
|
||||
self.created = datetime.now()
|
||||
self.updated = datetime.now()
|
||||
super(GroupLink, self).save()
|
||||
|
||||
# ugly, but django-admin isn't very versatile right now
|
||||
def position_link(self):
|
||||
return _("%(position)s (<a href='/link/%(id)s/position/up/'>Up</a>" \
|
||||
" | <a href='/link/%(id)s/position/down/'>Down</a>)") % \
|
||||
{ "position": self.position, "id": self.id }
|
||||
position_link.short_description = u"order"
|
||||
position_link.allow_tags = True
|
||||
|
||||
class Admin:
|
||||
list_display = ("group", "link", "position_link")
|
||||
list_filter = ("group",)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("group link")
|
||||
verbose_name_plural = _("group links")
|
||||
ordering = [ "position", ]
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
from django import template
|
||||
|
||||
from scrapyorg.lib.templatetags import *
|
||||
|
||||
from scrapyorg.link.models import GroupLink
|
||||
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.tag(name="load_links")
|
||||
def do_load_links(parser, token):
|
||||
syntax_msg = 'Template tag syntax: load_links "SLUG_NAME" as "VAR_NAME"'
|
||||
|
||||
try:
|
||||
tag, slug, _as, var_name = token.split_contents()
|
||||
if not is_string(slug) or not is_string(var_name):
|
||||
raise_syntax(syntax_msg)
|
||||
except:
|
||||
raise_syntax(syntax_msg)
|
||||
return LoadLinksNode(unquoute(slug), unquoute(var_name))
|
||||
|
||||
|
||||
class LoadLinksNode(template.Node):
|
||||
def __init__(self, slug, var_name):
|
||||
self.slug = slug
|
||||
self.var_name = var_name
|
||||
|
||||
def render(self, context):
|
||||
context[self.var_name] = GroupLink.objects.filter(group__slug=self.slug)
|
||||
return ''
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
from django.conf.urls.defaults import *
|
||||
|
||||
from scrapyorg.link.views import *
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r"^(?P<grouplink_id>\d+)/position/up/$", position_up),
|
||||
(r"^(?P<grouplink_id>\d+)/position/down/$", position_down),
|
||||
)
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
from django.shortcuts import get_object_or_404
|
||||
from django.http import HttpResponseRedirect
|
||||
|
||||
from scrapyorg.link.models import GroupLink
|
||||
|
||||
|
||||
def position_up(request, grouplink_id):
|
||||
grouplink = get_object_or_404(GroupLink, pk=grouplink_id)
|
||||
grouplink.position_up()
|
||||
return HttpResponseRedirect("/admin/link/grouplink/")
|
||||
|
||||
|
||||
def position_down(request, grouplink_id):
|
||||
grouplink = get_object_or_404(GroupLink, pk=grouplink_id)
|
||||
grouplink.position_down()
|
||||
return HttpResponseRedirect("/admin/link/grouplink/")
|
||||
|
|
@ -79,7 +79,6 @@ INSTALLED_APPS = (
|
|||
'django.contrib.admin',
|
||||
'django.contrib.markup',
|
||||
'django.contrib.flatpages',
|
||||
'scrapyorg.link',
|
||||
'scrapyorg.article',
|
||||
'scrapyorg.download',
|
||||
'scrapyorg.blog',
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ urlpatterns = patterns('',
|
|||
(r"^$", direct_to_template, { "template": "home.html" }),
|
||||
(r"^article/", include("scrapyorg.article.urls")),
|
||||
(r"^download/", include("scrapyorg.download.urls")),
|
||||
(r"^link/", include("scrapyorg.link.urls")),
|
||||
(r"^weblog/", include("scrapyorg.blog.urls")),
|
||||
|
||||
(r"^admin/", include("django.contrib.admin.urls")),
|
||||
|
|
|
|||
Loading…
Reference in New Issue