beginnings of a user wishlist display...
parent
8e3fc4ac6f
commit
f03f141cb1
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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"),
|
||||
)
|
||||
|
|
|
@ -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)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue