beginnings of a user wishlist display...

pull/1/head
Ed Summers 2011-09-12 01:53:54 -04:00
parent 8e3fc4ac6f
commit f03f141cb1
7 changed files with 69 additions and 18 deletions

View File

@ -0,0 +1,20 @@
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand
from regluit.core.models import Work
class Command(BaseCommand):
help = "creates random wishlists for any users"
def handle(self, *args, **options):
for user in User.objects.all():
print user
try:
if user.wishlist.works.all().count() != 0:
continue
for work in Work.objects.all():
print "adding %s to %s's wishlist" % (work, user)
user.wishlist.works.add(work)
except Exception, e:
print e
pass

View File

@ -1,7 +1,6 @@
from django.db import models
from django.contrib.auth.models import User
from regluit.core import signals
class Campaign(models.Model):
created = models.DateTimeField(auto_now_add=True)
@ -69,3 +68,6 @@ class Wishlist(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.OneToOneField(User, related_name='wishlist')
works = models.ManyToManyField('Work', related_name='wishlists')
from regluit.core import signals

View File

@ -1,9 +1,30 @@
from django.db.models import get_model
from django.db.utils import DatabaseError
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from social_auth.signals import pre_update
from social_auth.backends.facebook import FacebookBackend
def facebook_extra_values(sender, user, response, details, **kwargs):
if response.get('email') is not None:
user.email = response.get('email')
return True
pre_update.connect(facebook_extra_values, sender=FacebookBackend)
def create_wishlist(sender, created, instance, **kwargs):
# use get_model to avoid circular import problem with models
# this fails when a superuser is being created as part of a syncdb
# since the database table for wishlist doesn't exist yet
try:
Wishlist = get_model('core', 'Wishlist')
if created:
Wishlist.objects.create(user=instance)
except DatabaseError:
return
post_save.connect(create_wishlist, sender=User)

View File

@ -1,11 +1,8 @@
{% extends "base.html" %}
{% block content %}
<div class="book_panel">
<div class="book_panel" style="float: left;">
<div class="book_panel_interior">
<img src="/static/images/book-panel/heming_way.jpg" width="120" height="182" />
<b>Nineteen Eighty-Four</b>
<p>George Orwell</p>
<img src="http://covers.openlibrary.org/b/isbn/{{work.editions.all.0.isbn_10}}-M.jpg" width="120" height="182" />
<b>{{ work.title }}</b>
<p>{{ work.authors.all.0.name }}</p>
<p><b>Genre:</b> Sci-Fi</p>
<p class="status"><b>Status:</b> Unglued!</p>
<div class="read">
@ -41,4 +38,3 @@
</span>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,11 @@
{% extends "base.html" %}
{% block content %}
<h1>Wishlists for {{ user.username }}</h1>
{% for work in user.wishlist.works.all %}
{% include "book_panel.html" %}
{% endfor %}
{% endblock %}

View File

@ -3,5 +3,5 @@ from django.conf.urls.defaults import *
urlpatterns = patterns(
"regluit.frontend.views",
url(r"^$", "home", name="home"),
url(r"^panel/$", "panel", name="panel"),
url(r"^user/(?P<username>.+)/$", "user", name="user"),
)

View File

@ -1,17 +1,18 @@
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.contrib.auth.models import User
from django.shortcuts import render_to_response, get_object_or_404
from regluit.core import models
def home(request):
campaigns = models.Campaign.objects.all()
return render_to_response('home.html',
{"campaigns": campaigns},
context_instance=RequestContext(request)
)
def panel(request):
return render_to_response('book-panel.html',
{},
context_instance=RequestContext(request)
)
def user(request, username):
u = get_object_or_404(User, username=username)
return render_to_response('user.html',
{"user": u, "wishlist": u.wishlist},
context_instance=RequestContext(request)
)