def initiative_payment(request): system_message = None if request.POST: profile_id = request.session['profile_id'] uuid = request.POST['uuid'] # Set your secret key: remember to change this to your live secret key in production # See your keys here https://manage.stripe.com/account stripe.api_key = settings.STRIPE_API_KEY # Get the credit card details submitted by the form token = request.POST['stripeToken'] amount = settings.INITIATIVE_LAUNCH_FEE currency = 'usd' processor = 'stripe' # Create the charge on Stripe's servers - this will charge the user's # card try: # TODO find out what stripe.Charge.create() returns charge = stripe.Charge.create( amount=amount, # amount in cents, again currency=currency, card=token, description=INITIATIVE_LAUNCH ) initiative_id = initiative_dao.get_intitiative_id(uuid) payment = Payment_Receipt.objects.create( profile_id=profile_id, processor=processor, table_desc='initiative', table_key=initiative_id, ref_id=charge.id, short_desc=INITIATIVE_LAUNCH, amount=amount, currency_code=currency, transaction_date=datetime.now()) initiative = Initiative.objects.get(pk=initiative_id) initiative.is_public = True, initiative.publish_date = datetime.now() initiative.save() system_message = 'Payment completed successfully! Your Initiative has been published!.' except stripe.CardError as e: # The card has been declined system_message = 'An error has occurred processing request.' return render_to_response('payment.html', { 'system_message': system_message, }, context_instance=RequestContext(request)) else: system_message = 'Invalid request.' return render_to_response('system.html', { 'system_message': system_message, }, context_instance=RequestContext(request))
def initiative_milestones_add(request): system_message = None if request.POST: ml = request.POST.getlist('milestone_list') uuid = request.POST['uuid'] initiative_id = initiative_dao.get_intitiative_id(uuid) Milestones.objects.filter(initiative_id=initiative_id).delete() for milestone in ml: Milestones.objects.create(initiative_id=initiative_id, milestone_id=milestone) system_message = 'Milestones updated' return initiative_milestones(request, uuid, system_message)
def initiative_service_add(request): system_message = None if request.POST: sl = request.POST.getlist('service_list') uuid = request.POST['uuid'] initiative_id = initiative_dao.get_intitiative_id(uuid) Initiative_Service.objects.filter(initiative_id=initiative_id).delete() for service in sl: Initiative_Service.objects.create(initiative_id=initiative_id, service_id=service) system_message = 'Services updated' return initiative_service(request, uuid, system_message)
def initiative_edit_save(request): system_message = None if request.method == 'POST': uuid = request.POST['uuid'] initiative_id = initiative_dao.get_intitiative_id(uuid) form = InitiativeForm(request.POST) if form.is_valid(): is_public = form.cleaned_data['is_public'] initiative = Initiative.objects.get(pk=initiative_id) initiative.short_desc = form.cleaned_data['short_desc'] initiative.long_desc = form.cleaned_data['long_desc'] if is_public: if settings.INITIATIVE_LAUNCH_FEE == 0: initiative.is_public = is_public if initiative.publish_date is None: initiative.publish_date = datetime.now() else: initiative.is_public = is_public initiative.save() if settings.INITIATIVE_LAUNCH_FEE > 0 and is_public and initiative.publish_date is None: raw_fee = settings.INITIATIVE_LAUNCH_FEE display_fee = str(raw_fee)[:-2] + '.' + str(raw_fee)[-2:] return render_to_response('initiative_payment.html', { 'system_message': system_message, 'uuid': uuid, 'display_fee': display_fee, 'raw_fee': raw_fee, }, context_instance=RequestContext(request)) else: system_message = 'Initiative updated!' return render_to_response('initiative_edit.html', { 'system_message': system_message, 'form': None, 'uuid': uuid, }, context_instance=RequestContext(request)) else: system_message = 'Error' return render_to_response('initiative_edit.html', { 'system_message': system_message, 'uuid': uuid, 'form': form, }, context_instance=RequestContext(request)) else: system_message = 'Invalid request' return render_to_response('system.html', { 'system_message': system_message, }, context_instance=RequestContext(request))
def initiative_milestone_date(request, uuid=None): system_message = None if request.POST: system_message = 'post' uuid = request.POST['uuid'] milestone_id = request.POST['milestone_id'] target_date = request.POST['target_date'] complete_date = request.POST['complete_date'] if target_date != '' or complete_date != '': milestone = Milestones.objects.get(pk=milestone_id) if target_date != '': milestone.target_date = datetime.strptime( target_date, "%m/%d/%Y").strftime("%Y-%m-%d") if complete_date != '': milestone.complete_date = datetime.strptime( complete_date, "%m/%d/%Y").strftime("%Y-%m-%d") milestone.save() system_message = 'Milestone date updated' else: system_message = 'Nothing to update:' + \ target_date + ':' + complete_date milestones = Milestones.objects.filter( initiative_id=initiative_dao.get_intitiative_id(uuid)).values( 'id', 'initiative_id', 'target_date', 'complete_date', 'milestone__short_desc') return render_to_response('initiative_milestone_dates.html', { 'system_message': system_message, 'milestones': milestones, 'uuid': uuid }, RequestContext(request))