Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ________________________________
- in app_name/context_processor
- ________________________________
- from models import Charity
- import datetime
- from django.conf import settings
- def charity_admin(request):
- charities = Charity.objects.all()
- return {"charities": charities,}
- _____________________________
- in charities/models.py
- _____________________________
- from django.db import models
- from settings import DEFAULT_CHARITY_NAME as deafult_charity_name
- class GetDefaultInstance(models.Manager):
- def get_default_instance(self):
- return super(Charity,self).get_query_set().filter(charity_name=default_charity_name)
- class Charity(models.Model):
- class Meta:
- verbose_name_plural = 'Charities'
- app_label = 'charities'
- charity_name = models.CharField(max_length=50)
- in_percentage = models.IntegerField(help_text='default value is 0,\
- leave blank if you will enter fixed amount.', default=0, blank=True,null=True)
- fixed_amount = models.IntegerField(help_text='default value is 0,\
- leave blank if you entered amount in percentage.',default=0, blank=True, null=True )
- objects = models.Manager()
- default_instance = GetDefaultInstance()
- def __unicode__(self):
- return '%s'%self.charity_name
- ________________________________
- in model_name/admin_views.py
- _________________________________
- from charities.models import Charity, GetDefaultInstance
- from django.template import RequestContext
- from django.shortcuts import render_to_response
- from django.contrib.admin.views.decorators import staff_member_required
- from generoucity.mini_shop.extensions.deals.models import ItemDetails
- from generoucity.mini_shop.models import Item
- class CharityReport(object):
- def __init__(self,request,itemdetails_id):
- self.request = request
- self.itemdetails_id = itemdetails_id
- def render_report(self):
- data = {}
- item = Item.objects.get(pk=self.itemdetails_id)
- itemdetail_obj = ItemDetails.objects.get(item=item)
- charity_obj = itemdetail_obj.charity
- if not type(charity_obj) is type('NoneType'):
- data['charity_name'] = charity_obj.charity_name
- else:
- data['charity_name'] = 'No charity is associated with this deal.'
- data['price'] = item.price
- if charity_obj.in_percentage:
- data['charity_category'] = 'Fixed Percentage: %s '%(charity_obj.in_percentage)
- data['charity_amount'] = (float(charity_obj.in_percentage)/100)*item.price
- else:
- data['charity_category'] = 'By Fixed Amount: %d'%(charity_obj.fixed_amount)
- data['charity_amount'] = charity_obj.fixed_amount
- data['item'] = item.name
- return render_to_response("admin/mini_shop/extensions/deals/charity_report.html",locals(),RequestContext(self.request,{}))
- def report(request,itemdetails_id):
- charity_report_object = CharityReport(request, itemdetails_id)
- return charity_report_object.render_report()
- report = staff_member_required(report)
- ______________________________________________
- the template
- ______________________________________________
- {% extends "admin/base_site.html" %}
- {% block title %}List of books by publisher{% endblock %}
- {% block content %}
- <div id="content-main">
- <h1>Charity Associated with item "{{item.name}}"</h1>
- {% for key,value in data.iteritems %}
- <ul>
- <li><h3>{{key}}</h3></li>
- <li>{{value}}</li>
- </ul>
- _________________________________________-
- change_form.html
- _____________________________
- {% extends "admin/change_form.html" %}
- {% load mini_shop_tags %}
- {% load i18n %}
- {% block object-tools %}
- {% if change %}{% if not is_popup %}
- <ul class="object-tools">
- <li><a href="history/" class="historylink">{% trans "History" %}</a></li>
- {% if opts.module_name == "item" %}
- <li><a href="/admin/charity_report/{{object_id}}" class="historylink">Charity Report</a></li>
- {% endif %}
- {% if has_absolute_url %}
- <li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">
- {% trans "View on site" %}</a>
- </li>
- {% endif%}
- </ul>
- {% endif %}{% endif %}
- {% endblock %}
- {% endfor %}
- </div>
- <div class="submit-row">
- <p class="default"><a href="/admin/mini_shop/item/{{item.pk}}/">Back</a></p>
- </div>
- {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement