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))
|
raise forms.ValidationError(_("Your username is already "+oldusername))
|
||||||
|
|
||||||
class CampaignPledgeForm(forms.Form):
|
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>Work: {{campaign.work}}</p>
|
||||||
<p>Target: {{campaign.target}}</p>
|
<p>Target: {{campaign.target}}</p>
|
||||||
<p>Deadline: {{campaign.deadline}}</p>
|
<p>Deadline: {{campaign.deadline}}</p>
|
||||||
<p>Pledge form:</p>
|
<form method="POST" action="{% url campaign_by_id pk=campaign.id %}">
|
||||||
<form method="POST" action="/testpledge?campaign={{campaign.id}}">
|
|
||||||
{% csrf_token %}
|
{% 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" />
|
<input type="submit" value="Pledge" />
|
||||||
</form>
|
</form>
|
||||||
|
<p class="extra">Message:{{message}}</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -7,5 +7,5 @@
|
||||||
<li><a href="{% url campaign_by_id pk=campaign.id %}">{{ campaign.name }}</a></li>
|
<li><a href="{% url campaign_by_id pk=campaign.id %}">{{ campaign.name }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
<p class="extra">Message:{{campaign_list.message}}</p>
|
||||||
{% endblock %}
|
{% 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 django.views.generic import ListView, DetailView
|
||||||
|
|
||||||
from regluit.core.models import Campaign
|
from regluit.core.models import Campaign
|
||||||
from regluit.frontend.views import CampaignDetailView
|
from regluit.frontend.views import CampaignDetailView, RYLearnView, CampaignFormView, CampaignFormView2
|
||||||
|
|
||||||
urlpatterns = patterns(
|
urlpatterns = patterns(
|
||||||
"regluit.frontend.views",
|
"regluit.frontend.views",
|
||||||
|
@ -14,9 +14,15 @@ urlpatterns = patterns(
|
||||||
url(r"^privacy/$", TemplateView.as_view(template_name="privacy.html"),
|
url(r"^privacy/$", TemplateView.as_view(template_name="privacy.html"),
|
||||||
name="privacy"),
|
name="privacy"),
|
||||||
url(r"^rightsholders/$", TemplateView.as_view(template_name="rhtools.html"),
|
url(r"^rightsholders/$", TemplateView.as_view(template_name="rhtools.html"),
|
||||||
name="rightsholders"),
|
name="rightsholders"),
|
||||||
url(r"^wishlist/$", "wishlist", name="wishlist"),
|
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(
|
url(r"^campaigns/$", ListView.as_view(
|
||||||
model=Campaign,template_name="campaign_list.html", context_object_name="campaign_list")),
|
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.contrib.auth.forms import UserChangeForm
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.http import HttpResponse
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
from django.views.generic import ListView, DetailView
|
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.contrib.auth.decorators import login_required
|
||||||
from django.shortcuts import render, render_to_response, get_object_or_404
|
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.core.search import gluejar_search
|
||||||
|
|
||||||
from regluit.frontend.forms import UserData
|
from regluit.frontend.forms import UserData
|
||||||
|
from regluit.frontend.forms import CampaignPledgeForm
|
||||||
|
|
||||||
|
import logging
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
|
@ -93,5 +100,85 @@ class CampaignDetailView(DetailView):
|
||||||
model=models.Campaign
|
model=models.Campaign
|
||||||
template_name="campaign_detail.html"
|
template_name="campaign_detail.html"
|
||||||
context_object_name = "campaign"
|
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