mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 16:45:41 +01:00
Taggit implemented.
This commit is contained in:
@@ -9,6 +9,8 @@ from pinry.pins.models import Pin
|
|||||||
|
|
||||||
|
|
||||||
class PinResource(ModelResource): # pylint: disable-msg=R0904
|
class PinResource(ModelResource): # pylint: disable-msg=R0904
|
||||||
|
tags = fields.ListField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
queryset = Pin.objects.all()
|
queryset = Pin.objects.all()
|
||||||
resource_name = 'pin'
|
resource_name = 'pin'
|
||||||
@@ -17,6 +19,24 @@ class PinResource(ModelResource): # pylint: disable-msg=R0904
|
|||||||
'published': ['gt'],
|
'published': ['gt'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def build_filters(self, filters=None):
|
||||||
|
if filters is None:
|
||||||
|
filters = {}
|
||||||
|
|
||||||
|
orm_filters = super(PinResource, self).build_filters(filters)
|
||||||
|
|
||||||
|
if 'tag' in filters:
|
||||||
|
orm_filters['tags__name__in'] = filters['tag'].split(',')
|
||||||
|
return orm_filters
|
||||||
|
|
||||||
|
def dehydrate_tags(self, bundle):
|
||||||
|
return map(str, bundle.obj.tags.all())
|
||||||
|
|
||||||
|
def save_m2m(self, bundle):
|
||||||
|
tags = bundle.data.get('tags', [])
|
||||||
|
bundle.obj.tags.set(*tags)
|
||||||
|
return super(PinResource, self).save_m2m(bundle)
|
||||||
|
|
||||||
|
|
||||||
class UserResource(ModelResource):
|
class UserResource(ModelResource):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
@@ -68,7 +68,14 @@ $(window).ready(function () {
|
|||||||
html += '<a class="fancybox" rel="pins" href="'+image.image+'">';
|
html += '<a class="fancybox" rel="pins" href="'+image.image+'">';
|
||||||
html += '<img src="'+image.thumbnail+'" width="200" >';
|
html += '<img src="'+image.thumbnail+'" width="200" >';
|
||||||
html += '</a>';
|
html += '</a>';
|
||||||
html += '<p>'+image.description+'</p>';
|
if (image.description) html += '<p>'+image.description+'</p>';
|
||||||
|
if (image.tags) {
|
||||||
|
html += '<p>';
|
||||||
|
for (tag in image.tags) {
|
||||||
|
html += image.tags[tag] + ', ';
|
||||||
|
}
|
||||||
|
html += '</p>';
|
||||||
|
}
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
|
from taggit.forms import TagField
|
||||||
|
|
||||||
from .models import Pin
|
from .models import Pin
|
||||||
|
|
||||||
|
|
||||||
class PinForm(forms.ModelForm):
|
class PinForm(forms.ModelForm):
|
||||||
url = forms.CharField(label='URL', required=False)
|
url = forms.CharField(label='URL', required=False)
|
||||||
image = forms.ImageField(label='or Upload', required=False)
|
image = forms.ImageField(label='or Upload', required=False)
|
||||||
|
tags = TagField()
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@@ -14,6 +17,7 @@ class PinForm(forms.ModelForm):
|
|||||||
'url',
|
'url',
|
||||||
'image',
|
'image',
|
||||||
'description',
|
'description',
|
||||||
|
'tags',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from django.core.files import File
|
|||||||
from django.core.files.temp import NamedTemporaryFile
|
from django.core.files.temp import NamedTemporaryFile
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
from taggit.managers import TaggableManager
|
||||||
import urllib2
|
import urllib2
|
||||||
import os
|
import os
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
@@ -15,6 +16,7 @@ class Pin(models.Model):
|
|||||||
image = models.ImageField(upload_to='pins/pin/originals/')
|
image = models.ImageField(upload_to='pins/pin/originals/')
|
||||||
thumbnail = models.ImageField(upload_to='pins/pin/thumbnails/')
|
thumbnail = models.ImageField(upload_to='pins/pin/thumbnails/')
|
||||||
published = models.DateTimeField(auto_now_add=True)
|
published = models.DateTimeField(auto_now_add=True)
|
||||||
|
tags = TaggableManager()
|
||||||
|
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ def new_pin(request):
|
|||||||
pin = form.save(commit=False)
|
pin = form.save(commit=False)
|
||||||
pin.submitter = request.user
|
pin.submitter = request.user
|
||||||
pin.save()
|
pin.save()
|
||||||
|
form.save_m2m()
|
||||||
messages.success(request, 'New pin successfully added.')
|
messages.success(request, 'New pin successfully added.')
|
||||||
return HttpResponseRedirect(reverse('pins:recent-pins'))
|
return HttpResponseRedirect(reverse('pins:recent-pins'))
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ INSTALLED_APPS = (
|
|||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'south',
|
'south',
|
||||||
'compressor',
|
'compressor',
|
||||||
|
'taggit',
|
||||||
'pinry.vendor',
|
'pinry.vendor',
|
||||||
'pinry.core',
|
'pinry.core',
|
||||||
'pinry.pins',
|
'pinry.pins',
|
||||||
|
|||||||
@@ -5,4 +5,5 @@ django-tastypie==0.9.11
|
|||||||
django_compressor==1.2
|
django_compressor==1.2
|
||||||
cssmin==0.1.4
|
cssmin==0.1.4
|
||||||
jsmin==2.0.2
|
jsmin==2.0.2
|
||||||
|
-e git://github.com/hcarvalhoalves/django-taggit.git@e0f9642d7b94c8e6c0feb520d96bb6ae4d78a4d0#egg=django-taggit
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user