First cut at doing payment integration and understanding how to use class-based generic views
parent
7e4f0a222b
commit
f01d0c4df3
|
@ -38,4 +38,4 @@ class UserData(forms.Form):
|
|||
raise forms.ValidationError(_("Your username is already "+oldusername))
|
||||
|
||||
class CampaignPledgeForm(forms.Form):
|
||||
pledge_amount = forms.DecimalField(min_value=D('0.00'), max_value=D('10000.00'), decimal_places=2)
|
||||
pledge_amount = forms.DecimalField(initial=D('20.00'), min_value=D('0.00'), max_value=D('10000.00'), decimal_places=2)
|
||||
|
|
|
@ -6,10 +6,11 @@
|
|||
<p>Work: {{campaign.work}}</p>
|
||||
<p>Target: {{campaign.target}}</p>
|
||||
<p>Deadline: {{campaign.deadline}}</p>
|
||||
<p>Pledge form:</p>
|
||||
<form method="POST" action="/testpledge?campaign={{campaign.id}}">
|
||||
<form method="POST" action="{% url campaign_by_id pk=campaign.id %}">
|
||||
{% csrf_token %}
|
||||
<input type="text" name="pledge_amount" value="20.00"/>
|
||||
<!--<input type="text" name="pledge_amount" value="20.00"/> -->
|
||||
{{form.as_p}}
|
||||
<input type="submit" value="Pledge" />
|
||||
</form>
|
||||
<p class="extra">Message:{{message}}</p>
|
||||
{% endblock %}
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
<li><a href="{% url campaign_by_id pk=campaign.id %}">{{ campaign.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<p class="extra">Message:{{campaign_list.message}}</p>
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>RYlearn</h1>
|
||||
<p class="classname">Message:{{message}}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -4,7 +4,7 @@ from django.views.generic.base import TemplateView
|
|||
from django.views.generic import ListView, DetailView
|
||||
|
||||
from regluit.core.models import Campaign
|
||||
from regluit.frontend.views import CampaignDetailView
|
||||
from regluit.frontend.views import CampaignDetailView, RYLearnView, CampaignFormView, CampaignFormView2
|
||||
|
||||
urlpatterns = patterns(
|
||||
"regluit.frontend.views",
|
||||
|
@ -14,9 +14,15 @@ urlpatterns = patterns(
|
|||
url(r"^privacy/$", TemplateView.as_view(template_name="privacy.html"),
|
||||
name="privacy"),
|
||||
url(r"^rightsholders/$", TemplateView.as_view(template_name="rhtools.html"),
|
||||
name="rightsholders"),
|
||||
name="rightsholders"),
|
||||
url(r"^wishlist/$", "wishlist", name="wishlist"),
|
||||
url(r"^rylearn0/$", "rylearn0", name="rylearn0"),
|
||||
url(r"^rylearn1/$", direct_to_template, {'template': 'rylearn.html', 'extra_context':{'message':'hello there from rylearn1'}}, name="rylearn"),
|
||||
url(r"^rylearn2/$", RYLearnView.as_view(),name="rylearn2"),
|
||||
url(r"^campaigns/$", ListView.as_view(
|
||||
model=Campaign,template_name="campaign_list.html", context_object_name="campaign_list")),
|
||||
url(r'^campaigns/(?P<pk>\d+)/$', CampaignDetailView.as_view(), name="campaign_by_id"),
|
||||
url(r"^campaigns/(?P<pk>\d+)/$",CampaignFormView2.as_view(), name="campaign_by_id")
|
||||
)
|
||||
|
||||
# url(r'^campaigns/(?P<pk>\d+)/$', CampaignDetailView.as_view(), name="campaign_by_id"),
|
||||
# url(r"^campaigns/(?P<pk>\d+)/$","campaign_detail", name="campaign_by_id")
|
|
@ -3,9 +3,12 @@ from django.contrib.auth.models import User
|
|||
# from django.contrib.auth.forms import UserChangeForm
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.http import HttpResponse
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.decorators.http import require_POST
|
||||
from django.views.generic import ListView, DetailView
|
||||
from django.views.generic.base import TemplateView
|
||||
from django.views.generic.edit import FormView
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import render, render_to_response, get_object_or_404
|
||||
|
||||
|
@ -13,6 +16,10 @@ from regluit.core import models, bookloader
|
|||
from regluit.core.search import gluejar_search
|
||||
|
||||
from regluit.frontend.forms import UserData
|
||||
from regluit.frontend.forms import CampaignPledgeForm
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def home(request):
|
||||
if request.user.is_authenticated():
|
||||
|
@ -93,5 +100,85 @@ class CampaignDetailView(DetailView):
|
|||
model=models.Campaign
|
||||
template_name="campaign_detail.html"
|
||||
context_object_name = "campaign"
|
||||
name="campaign_by_id"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(CampaignDetailView, self).get_context_data(**kwargs)
|
||||
form = CampaignPledgeForm()
|
||||
context.update({
|
||||
'message': 'hello there from CampaignDetailView',
|
||||
'form': form
|
||||
})
|
||||
return context
|
||||
|
||||
def campaign_detail(request, pk):
|
||||
campaign = models.Campaign.objects.get(id=int(pk))
|
||||
|
||||
if request.method == 'POST':
|
||||
form = CampaignPledgeForm(request.POST)
|
||||
if form.is_valid():
|
||||
pledge_amount = request.POST["pledge_amount"]
|
||||
return HttpResponseRedirect('/testpledge?campaign=%s&pledge_amount=%s' % (str(pk),str(pledge_amount)))
|
||||
else:
|
||||
form = CampaignPledgeForm()
|
||||
|
||||
return render(request,'campaign_detail.html', {'campaign':campaign, 'form':form, 'message':'hello little monsters'})
|
||||
|
||||
class CampaignFormView(FormView):
|
||||
template_name="campaign_detail.html"
|
||||
form_class = CampaignPledgeForm
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
pk = self.kwargs["pk"]
|
||||
campaign = models.Campaign.objects.get(id=int(pk))
|
||||
context = super(CampaignFormView, self).get_context_data(**kwargs)
|
||||
context.update({
|
||||
'message': 'hello little monsters',
|
||||
'campaign': campaign
|
||||
})
|
||||
return context
|
||||
def post(self, request, *args, **kwargs):
|
||||
pk = self.kwargs["pk"]
|
||||
form_class = self.get_form_class()
|
||||
form = self.get_form(form_class)
|
||||
if form.is_valid():
|
||||
pledge_amount = request.POST["pledge_amount"]
|
||||
return HttpResponseRedirect('/testpledge?campaign=%s&pledge_amount=%s' % (str(pk),str(pledge_amount)))
|
||||
else:
|
||||
return self.form_invalid(form)
|
||||
|
||||
|
||||
class CampaignFormView2(FormView):
|
||||
|
||||
template_name="campaign_detail.html"
|
||||
form_class = CampaignPledgeForm
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
pk = self.kwargs["pk"]
|
||||
campaign = models.Campaign.objects.get(id=int(pk))
|
||||
context = super(CampaignFormView2, self).get_context_data(**kwargs)
|
||||
context.update({
|
||||
'message': 'hello little monsters',
|
||||
'campaign': campaign
|
||||
})
|
||||
return context
|
||||
def get_success_url(self):
|
||||
pk = self.kwargs["pk"]
|
||||
pledge_amount = self.request.POST["pledge_amount"]
|
||||
return '/testpledge?campaign=%s&pledge_amount=%s' % (str(pk),str(pledge_amount))
|
||||
|
||||
|
||||
def rylearn0(request):
|
||||
#return HttpResponse("hello")
|
||||
# https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#django.shortcuts.render_to_response
|
||||
#return render_to_response("rylearn.html", {'message':'hello there from rylearn0'})
|
||||
return render(request,'rylearn.html', {'message':'hello there from rylearn0'})
|
||||
|
||||
class RYLearnView(TemplateView):
|
||||
template_name = "rylearn.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(RYLearnView, self).get_context_data(**kwargs)
|
||||
context.update({
|
||||
'message': 'hello there from rylearn2'
|
||||
})
|
||||
return context
|
||||
|
|
Loading…
Reference in New Issue