from oilsweb.lib.request import RequestMgr
from oilsweb.lib.acq.fund import FundMgr
from oilsweb.lib.acq.picklist import PicklistMgr
+from oilsweb.lib.acq import provider_mgr
class PicklistController(BaseController):
r.ctx.acq.lineitem.value = lineitem
r.ctx.acq.lineitem_marc_html.value = oilsweb.lib.bib.marc_to_html(lineitem.marc())
+ r.ctx.acq.provider_list.value = provider_mgr.list(r)
r.ctx.acq.fund_list.value = fmgr.retrieve_org_funds()
+
return r.render('acq/picklist/view_lineitem.html')
def list(self):
r.ctx.core.authtoken.value,
detail).recv().content()
Event.parse_and_raise(detail)
+ elif r.ctx.acq.provider_id.value:
+ lineitem = ses.request('open-ils.acq.lineitem.retrieve',
+ r.ctx.core.authtoken.value,
+ r.ctx.acq.lineitem_id.value).recv().content()
+ lineitem = Event.parse_and_raise(lineitem)
+
+ lineitem.provider(r.ctx.acq.provider_id.value)
+ lineitem = ses.request('open-ils.acq.lineitem.update',
+ r.ctx.core.authtoken.value,
+ lineitem).recv().content()
+ Event.parse_and_raise(lineitem)
return redirect_to(controller='acq/picklist', action='view_lineitem',
id=r.ctx.acq.lineitem_id.value)
+<%namespace file='../../common/widgets.html' name='widget' />
<div id='oils-acq-lineitem-header'>
${_('Picklist Entry')}
<div class='oils-acq-lineitem-attributes'>
<%
- provider = c.oils.acq.lineitem.value.provider() or ''
- if provider: provider.name()
- meta = _("Source %(data)s") % {"data":c.oils.acq.lineitem.value.source_label()}
- meta2 = _("Provider %(data)s") % {"data":provider}
- meta3 = _("Create date %(data)s") % {"data":c.oils.acq.lineitem.value.create_time()}
- meta4 = _("Last update time %(data)s") % {"data":c.oils.acq.lineitem.value.edit_time()}
+ provider_map = [(provider.id(), provider.name()) for provider in c.oils.acq.provider_list.value]
+
+ provider = c.oils.acq.lineitem.value.provider()
+ if provider:
+ provider = provider.id()
+ meta = _("Source %s") % c.oils.acq.lineitem.value.source_label()
+ meta3 = _("Create date %s") % c.oils.acq.lineitem.value.create_time()
+ meta4 = _("Last update time %s") % c.oils.acq.lineitem.value.edit_time()
%>
<div>${meta}</div>
- <div>${meta2}</div>
+ <div>
+ <form method="post"
+ action="${c.oils.acq.prefix.value}/picklist/update_lineitem">
+ ${_("Provider")}
+ ${widget.build_selector(c.oils.acq.provider_id.cgi_name, provider_map, provider)}
+ <button name="${c.oils.acq.lineitem_id.cgi_name}"
+ value="${c.oils.acq.lineitem.value.id()}">
+ ${_("Update")}
+ </button>
+
+ </form>
+ </div>
<div>${meta3}</div>
<div>${meta4}</div>
</div>
# -*- coding: utf-8 -*-
<%inherit file='../base.html'/>
+<%namespace file='../../common/widgets.html' name='widget' />
<%namespace file='picklist_summary.html' name='picklist' />
<%def name="page_title()">${_('Evergreen Picklist Entry')}</%def>
<%def name="block_content()">
-${picklist.summary(c.oils.acq.picklist.value, link=True)}
-
-<%include file='lineitem_summary.html'/>
-
<%
fund_map = [(fund.id(), fund.name()) for fund in c.oils.acq.fund_list.value]
- selection_prefix = "<select name='" + c.oils.acq.fund_id.cgi_name + "'>\n"
- selection_suffix = "\n</select>"
- option_format = "<option %s value='%s'>%s</option>"
-
- def fund_selection(selected_id):
- if not selected_id:
- optionlist = ["<option value='' selected='selected'>%s</option>\n" % _("-- Select Fund --")]
- else:
- optionlist = []
+%>
- for (id, name) in fund_map:
- if id == selected_id:
- sel = "selected='selected'"
- else:
- sel = ""
+${picklist.summary(c.oils.acq.picklist.value, link=True)}
- optionlist.append(option_format % (sel, id, name))
+<%include file='lineitem_summary.html'/>
- return selection_prefix + "\n".join(optionlist) + selection_suffix
-%>
<table id='oils-acq-lineitem-summary'>
% for attr in c.oils.acq.lineitem.value.attributes():
<tr>
action="${c.oils.acq.prefix.value}/picklist/update_lineitem">
<input type="hidden"
name="${c.oils.acq.lineitem_id.cgi_name}"
- value="${c.oils.acq.lineitem.value.id()}">
+ value="${c.oils.acq.lineitem.value.id()}" />
<button name='${c.oils.acq.lineitem_detail_id.cgi_name}'
value='${detail.id()}'>${_("Update")}</button>
- ${fund_selection(detail.fund())}
+ ${widget.build_selector(c.oils.acq.fund_id.cgi_name, fund_map, detail.fund())}
</form>
</td>
<td>${detail.owning_lib() or ' '}</td>
<a href='?${c.oils.acq.offset.cgi_name}=${end}'>»</a>
% endif
</%def>
+
+<%def name='build_selector(name, optionmap, chosen=None)'>
+ <div style='display:none'>
+ NAME '${name}'
+ CHOSEN ${chosen}
+ OPTIONMAP ${optionmap}
+ </div>
+ <select name="${name}">
+
+ %if not selected:
+ <option value="" selected="selected">${_("-- Select --")}</option>
+ %endif
+
+ %for (id, name) in optionmap:
+ <option value="${id}"
+ %if id == chosen:
+ selected='selected'
+ %endif
+ >${name}</option>
+ %endfor
+ </select>
+</%def>