Skip to content

Commit

Permalink
Add social bookmarking counter.
Browse files Browse the repository at this point in the history
Add news templatetags: show_bookmarks_related based on content_type.
Add BookmarkRelated model to share an url from a django model.
  • Loading branch information
thoas committed Feb 13, 2010
1 parent e5219e5 commit 187e86a
Show file tree
Hide file tree
Showing 18 changed files with 304 additions and 218 deletions.
3 changes: 2 additions & 1 deletion CONTRIBUTORS.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
Daniel Greenfeld <[email protected]>
Daniel Greenfeld <[email protected]>
Florent Messa <[email protected]>
7 changes: 6 additions & 1 deletion social_bookmarking/admin.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
from django.contrib import admin
from social_bookmarking.models import Bookmark
from social_bookmarking.models import Bookmark, BookmarkRelated

class BookmarkAdmin(admin.ModelAdmin):
list_display = ('title', 'status')
list_filter = ('title', 'status')
search_fields = ('title', 'status')
list_editable = ('status',)

class BookmarkRelatedAdmin(admin.ModelAdmin):
list_display = ('content_type', 'object_id', 'visits', 'bookmark')
list_filter = ('content_type', )

admin.site.register(Bookmark, BookmarkAdmin)
admin.site.register(BookmarkRelated, BookmarkRelatedAdmin)

168 changes: 0 additions & 168 deletions social_bookmarking/fixtures/bookmarks.json

This file was deleted.

104 changes: 104 additions & 0 deletions social_bookmarking/fixtures/initial_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
[{
"pk": 1,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "del.icio.us",
"url": "http://del.icio.us/post?url=%(url)s&title=%(title)s",
"image": "delicious.png",
"slug": "delicious",
"js": ""
}
},
{
"pk": 2,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Diigo",
"url": "https://secure.diigo.com/sign-in?referInfo=%(url)s&title=%(title)s",
"image": "diigo.png",
"slug": "diigo",
"js": ""
}
},
{
"pk": 3,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Digg",
"url": "http://digg.com/submit?phase=2&url=%(url)s&title=%(title)s",
"image": "digg.png",
"slug": "digg",
"js": ""
}
},
{
"pk": 4,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Facebook",
"url": "http://www.facebook.com/share.php?u=%(url)s&t=%(title)s",
"image": "facebook.png",
"slug": "facebook",
"js": ""
}
},
{
"pk": 5,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Technorati",
"url": "http://technorati.com/faves?add=%(url)s",
"image": "technorati.png",
"slug": "technorati",
"js": ""
}
},
{
"pk": 6,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Twitter",
"url": "http://twitter.com/home?status=%(title)s %(url)s",
"image": "twitter.png",
"slug": "twitter",
"js": ""
}
},
{
"pk": 7,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Friendfeed",
"url": "http://friendfeed.com/?url=%(url)s&title=%(title)s",
"image": "friendfeed.png",
"slug": "friendfeed",
"js": ""
}
},
{
"pk": 8,
"model": "social_bookmarking.bookmark",
"fields": {
"status": 2,
"description": "",
"title": "Wikio",
"url": "http://www.wikio.fr/sharethis?url=%(url)s&title=%(title)s",
"image": "wikio.png",
"slug": "wikio",
"js": ""
}
}]
Binary file removed social_bookmarking/media/.DS_Store
Binary file not shown.
Binary file not shown.
33 changes: 28 additions & 5 deletions social_bookmarking/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
from django.db import models
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
from django.utils.http import urlquote
from django.utils.translation import ugettext as _

DEFAULT_VISITS = 0

STATUS_CHOICES = (
(1, 'Inactive'),
Expand All @@ -24,16 +30,33 @@
you end your lines of code correctly.
"""

class BookmarkManager(models.Manager):
"""
QuerySet for all acive bookmarks.
"""
def get_active(self):
return self.get_query_set().filter(status=2)

class Bookmark(models.Model):
title = models.CharField(max_length=255, blank=False)
slug = models.SlugField(_('slug'))
status = models.IntegerField(choices=STATUS_CHOICES, default=2)
description = models.CharField(max_length=255, blank=True, help_text="Because some things want it")
url = models.CharField(blank=False, max_length=255, help_text=url_help)
image = models.CharField(help_text=image_help, max_length=100, blank=False)
js = models.TextField(help_text=js_help, blank=True)
description = models.CharField(max_length=255, blank=True, help_text=_("Because some things want it"))
url = models.CharField(blank=False, max_length=255, help_text=_(url_help))
image = models.CharField(help_text=_(image_help), max_length=100, blank=False)
js = models.TextField(help_text=_(js_help), blank=True)

objects = BookmarkManager()

class Meta:
ordering = ('title',)

def __unicode__(self):
return unicode(self.title)
return unicode(self.title)

class BookmarkRelated(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
bookmark = models.ForeignKey(Bookmark, blank=False, null=False)
visits = models.IntegerField(_('visits'), default=DEFAULT_VISITS, editable=False)
34 changes: 19 additions & 15 deletions social_bookmarking/templates/social_bookmarking/links.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
<div class="social-bookmarking">
Share:

{% for bookmark in bookmarks %}
<span class="bookmark" id="{{ bookmark.title|slugify }}">
{% if book.js %}
<script type="javascript">
{{ bookmark.js|safe }}
</script>
{% endif %}
<a href="{{ bookmark.link }}" title="{{ bookmark.title }}" rel="nofollow">
<img src="{{ MEDIA_URL }}social_bookmarking/img/{{ bookmark.image }}" width="16" height="16" alt="{{ bookmark.title }}" border="0" />
</a>
</span>
{% endfor %}

{% if bookmarks %}
<h2>Share</h2>
<ul>
{% for bookmark in bookmarks %}
<li>
<span class="bookmark {{ bookmark.slug }}">
{% if book.js %}
<script type="javascript">
{{ bookmark.js|safe }}
</script>
{% endif %}
<a href="{{ bookmark.link }}" title="{{ bookmark.title }}" rel="nofollow">
<img src="{{ MEDIA_URL }}social_bookmarking/img/{{ bookmark.image }}" width="16" height="16" alt="{{ bookmark.title }}" />
</a>
</span>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
Loading

0 comments on commit 187e86a

Please sign in to comment.