def demand(request):
agent = get_agent(request)
orders = Order.objects.customer_orders()
rands = Order.objects.open_rand_orders()
help = get_help("demand")
nav_form = DemandExchangeNavForm(data=request.POST or None)
if agent:
if request.method == "POST":
#import pdb; pdb.set_trace()
if nav_form.is_valid():
data = nav_form.cleaned_data
ext = data["exchange_type"]
return HttpResponseRedirect('/%s/%s/%s/'
% ('accounting/exchange', ext.id, 0))
return render_to_response("valueaccounting/demand.html", {
"orders": orders,
"rands": rands,
"agent": agent,
"nav_form": nav_form,
"help": help,
}, context_instance=RequestContext(request))
python类RequestContext()的实例源码
def resource_type_lists(request):
agent = get_agent(request)
rt_lists = ResourceTypeList.objects.all()
rtl_form = ResourceTypeListForm(data=request.POST or None)
#help = get_help("demand")
if request.method == "POST":
if rtl_form.is_valid():
form_data = rtl_form.cleaned_data
rt_list = rtl_form.save()
rt_ids = form_data["resource_types"]
for rt_id in rt_ids:
rt = EconomicResourceType.objects.get(id=rt_id)
elem = ResourceTypeListElement(
resource_type_list=rt_list,
resource_type=rt)
elem.save()
return HttpResponseRedirect('/%s/'
% ('accounting/resource-type-lists'))
return render_to_response("valueaccounting/resource_type_lists.html", {
"rt_lists": rt_lists,
"rtl_form": rtl_form,
"agent": agent,
#"help": help,
}, context_instance=RequestContext(request))
def project_stats(request, context_agent_slug):
project = None
member_hours = []
#import pdb; pdb.set_trace()
if context_agent_slug:
project = get_object_or_404(EconomicAgent, slug=context_agent_slug)
if project:
subs = project.with_all_sub_agents()
ces = CachedEventSummary.objects.filter(
event_type__relationship="work",
context_agent__in=subs)
if ces.count():
agents = {}
for ce in ces:
agents.setdefault(ce.agent, Decimal("0"))
agents[ce.agent] += ce.quantity
for key, value in agents.items():
member_hours.append((key, value))
member_hours.sort(lambda x, y: cmp(y[1], x[1]))
return render_to_response("valueaccounting/project_stats.html", {
"member_hours": member_hours,
"page_title": "All-time project stats",
}, context_instance=RequestContext(request))
def labnotes_reload(
request,
commitment_id,
was_running=0,
was_retrying=0):
ct = get_object_or_404(Commitment, id=commitment_id)
#import pdb; pdb.set_trace()
template_params = create_labnotes_context(
request,
ct,
was_running,
was_retrying,
)
return render_to_response("valueaccounting/workbook.html",
template_params,
context_instance=RequestContext(request))
def work_now(
request,
process_id,
commitment_id=None):
process = get_object_or_404(Process, id=process_id)
agent = get_agent(request)
ct = None
if commitment_id:
ct = get_object_or_404(Commitment, id=commitment_id)
#if not request.user.is_superuser:
# if agent != ct.from_agent:
# return render_to_response('valueaccounting/no_permission.html')
template_params = create_worknow_context(
request,
process,
agent,
ct,
)
return render_to_response("valueaccounting/work_now.html",
template_params,
context_instance=RequestContext(request))
def log_past_work(
request,
commitment_id):
ct = get_object_or_404(Commitment, id=commitment_id)
#import pdb; pdb.set_trace()
agent = get_agent(request)
if not request.user.is_superuser:
if agent != ct.from_agent:
return render_to_response('valueaccounting/no_permission.html')
template_params = create_past_work_context(
request,
ct,
)
event = template_params["event"]
if request.method == "POST":
return HttpResponseRedirect('/%s/%s/'
% ('accounting/labnote', ct.id))
return render_to_response("valueaccounting/log_past_work.html",
template_params,
context_instance=RequestContext(request))
def todo_history(request):
#import pdb; pdb.set_trace()
todo_list = Commitment.objects.finished_todos().order_by('-due_date',)
paginator = Paginator(todo_list, 25)
page = request.GET.get('page')
try:
todos = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
todos = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
todos = paginator.page(paginator.num_pages)
return render_to_response("valueaccounting/todo_history.html", {
"todos": todos,
}, context_instance=RequestContext(request))
def open_todos(request):
#import pdb; pdb.set_trace()
todo_list = Commitment.objects.todos().order_by('-due_date',)
paginator = Paginator(todo_list, 25)
page = request.GET.get('page')
try:
todos = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
todos = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
todos = paginator.page(paginator.num_pages)
return render_to_response("valueaccounting/open_todos.html", {
"todos": todos,
}, context_instance=RequestContext(request))
def labnotes(request, process_id):
process = get_object_or_404(Process, id=process_id)
agent = get_agent(request)
work_commitments = process.work_requirements()
#import pdb; pdb.set_trace()
if work_commitments.count() == 1:
ct = work_commitments[0]
template_params = get_labnote_context(ct, agent)
return render_to_response("valueaccounting/labnote.html",
template_params,
context_instance=RequestContext(request))
else:
return render_to_response("valueaccounting/labnotes.html", {
"process": process,
"agent": agent,
}, context_instance=RequestContext(request))
def change_order(request, order_id):
order = get_object_or_404(Order, id=order_id)
#import pdb; pdb.set_trace()
order_form = OrderChangeForm(instance=order, data=request.POST or None)
if request.method == "POST":
next = request.POST.get("next")
if order_form.is_valid():
order = order_form.save()
if next == "demand":
return HttpResponseRedirect('/%s/'
% ('accounting/demand'))
if next == "closed_work_orders":
return HttpResponseRedirect('/%s/'
% ('accounting/closed-work-orders'))
else:
next = request.GET.get("next")
return render_to_response("valueaccounting/change_order.html", {
"order_form": order_form,
"order": order,
"next": next,
}, context_instance=RequestContext(request))
def resource_facet_table(request):
headings = ["Resource Type"]
rows = []
facets = Facet.objects.all()
for facet in facets:
headings.append(facet)
for rt in EconomicResourceType.objects.all():
row = [rt, ]
for i in range(0, facets.count()):
row.append("")
for rf in rt.facets.all():
cell = headings.index(rf.facet_value.facet)
row[cell] = rf
rows.append(row)
return render_to_response("valueaccounting/resource_facets.html", {
"headings": headings,
"rows": rows,
}, context_instance=RequestContext(request))
def comments(request):
comments = Comment.objects.all().order_by("-submit_date")
paginator = Paginator(comments, 25)
page = request.GET.get('page')
try:
comment_list = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
comment_list = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
comment_list = paginator.page(paginator.num_pages)
return render_to_response("valueaccounting/comments.html", {
"comment_list": comment_list,
}, context_instance=RequestContext(request))
def inventory_board_demo(request):
#import pdb; pdb.set_trace()
pattern = ProcessPattern.objects.get(name="Change")
resource_form = ResourceFlowForm(pattern=pattern)
process_form = PlanProcessForm()
move_harvester_form = ExchangeFlowForm()
move_dryer_form = ExchangeFlowForm()
move_seller_form = ExchangeFlowForm()
return render_to_response("valueaccounting/inventory_board_demo.html", {
"resource_form": resource_form,
"process_form": process_form,
"move_harvester_form": move_harvester_form,
"move_dryer_form": move_dryer_form,
"move_seller_form": move_seller_form,
}, context_instance=RequestContext(request))
def bucket_filter_header(request):
#import pdb; pdb.set_trace()
header_form = FilterSetHeaderForm(data=request.POST or None)
if request.method == "POST":
if header_form.is_valid():
data = header_form.cleaned_data
agent = data["context"]
event_type = data["event_type"]
pattern = data["pattern"]
if pattern:
pattern_id = pattern.id
else:
pattern_id = 0
#import pdb; pdb.set_trace()
filter_set = data["filter_set"]
return HttpResponseRedirect('/%s/%s/%s/%s/%s/'
% ('accounting/bucket-filter', agent.id, event_type.id, pattern_id, filter_set))
return render_to_response("valueaccounting/bucket_filter_header.html", {
"header_form": header_form,
}, context_instance=RequestContext(request))
#@login_required
def skill_suggestions(request):
state = "new"
state_form = RequestStateForm(
initial={"state": "new",},
data=request.POST or None)
#import pdb; pdb.set_trace()
if request.method == "POST":
if state_form.is_valid():
data = state_form.cleaned_data
state = data["state"]
suggestions = SkillSuggestion.objects.filter(state=state)
return render_to_response("valueaccounting/skill_suggestions.html", {
"help": get_help("skill_suggestions"),
"suggestions": suggestions,
"state_form": state_form,
"state": state,
}, context_instance=RequestContext(request))
def membership_requests(request):
state = "new"
state_form = RequestStateForm(
initial={"state": "new",},
data=request.POST or None)
#agent_form = MembershipAgentSelectionForm()
#import pdb; pdb.set_trace()
if request.method == "POST":
if state_form.is_valid():
data = state_form.cleaned_data
state = data["state"]
requests = MembershipRequest.objects.filter(state=state)
return render_to_response("valueaccounting/membership_requests.html", {
"help": get_help("membership_requests"),
"requests": requests,
"state_form": state_form,
"state": state,
#"agent_form": agent_form,
}, context_instance=RequestContext(request))
def weibo_list(request):
context = {}
# ????
params = request.GET.copy()
_obj_list = Weibo.objects.order_by('-id')
paginator = Paginator(_obj_list, 50 ) # Show 10 contacts per page
page = request.GET.get('page')
try:
_objs = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
_objs = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
_objs = paginator.page(paginator.num_pages)
context.update({
"active_nav": "weibos.weibo",
"weibos": _objs,
"params": params
})
return render_to_response('weibos/weibo_list.html', {}, context_instance=RequestContext(request, context))
def export_translations(request, language):
"""
Vista de exportación de las traducciones
"""
FieldTranslation.delete_orphan_translations()
translations = FieldTranslation.objects.filter(lang=language)
for trans in translations:
trans.source_text = trans.source_text.replace("'","\'").replace("\"","\\\"")
trans.translation = trans.translation.replace("'","\'").replace("\"","\\\"")
replacements = {"translations":translations, "lang":language}
if len(settings.ADMINS)>0:
replacements["last_translator"] = settings.ADMINS[0][0]
replacements["last_translator_email"] = settings.ADMINS[0][1]
if settings.WEBSITE_NAME:
replacements["website_name"] = settings.WEBSITE_NAME
response = render(request=request, template_name='modeltranslation/admin/export_translations.po', dictionary=replacements, context_instance=RequestContext(request), content_type="text/x-gettext-translation")
response['Content-Disposition'] = 'attachment; filename="{0}.po"'.format(language)
return response
########################################################################
########################################################################
## Actualizar las traducciones
def export_translations(request, language):
"""
Export translations view.
"""
FieldTranslation.delete_orphan_translations()
translations = FieldTranslation.objects.filter(lang=language)
for trans in translations:
trans.source_text = trans.source_text.replace("'","\'").replace("\"","\\\"")
trans.translation = trans.translation.replace("'","\'").replace("\"","\\\"")
replacements = {"translations":translations, "lang":language}
if len(settings.ADMINS)>0:
replacements["last_translator"] = settings.ADMINS[0][0]
replacements["last_translator_email"] = settings.ADMINS[0][1]
if settings.WEBSITE_NAME:
replacements["website_name"] = settings.WEBSITE_NAME
response = render(request=request, template_name='modeltranslation/admin/export_translations.po', dictionary=replacements, context_instance=RequestContext(request), content_type="text/x-gettext-translation")
response['Content-Disposition'] = 'attachment; filename="{0}.po"'.format(language)
return response
########################################################################
########################################################################
## Update translations
def template_render(template, context=None, request=None):
"""
Passing Context or RequestContext to Template.render is deprecated in 1.9+,
see https://github.com/django/django/pull/3883 and
https://github.com/django/django/blob/1.9/django/template/backends/django.py#L82-L84
:param template: Template instance
:param context: dict
:param request: Request instance
:return: rendered template as SafeText instance
"""
if isinstance(template, Template):
if request:
context = RequestContext(request, context)
else:
context = Context(context)
return template.render(context)
# backends template, e.g. django.template.backends.django.Template
else:
return template.render(context, request=request)