From 2a24b5dfb3d75024b3201d091dee8ba7a8e27f0e Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 12 Feb 2008 14:52:09 +0000 Subject: [PATCH] added entry count to picklist.user.retrieve, displaying in picklist summary display git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8730 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Acq/Picklist.pm | 41 ++++++++++++++++------ .../oilsweb/oilsweb/controllers/acq/picklist.py | 30 +++++++++------- Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py | 4 +-- .../oils/default/acq/picklist/view_list.html | 2 ++ 4 files changed, 52 insertions(+), 25 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm index 5b64eb4eed..13e10f9e53 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Picklist.pm @@ -89,21 +89,29 @@ sub retrieve_picklist { my $picklist = $e->retrieve_acq_picklist($picklist_id) or return $e->event; - if($$options{flesh_entry_count}) { - my $count = $e->json_query({ - select => { - acqple => [{transform => 'count', column => 'id', alias => 'count'}] - }, - from => 'acqple', - where => {picklist => $picklist_id}} - ); - $picklist->entry_count($count->[0]->{count}); - } + $picklist->entry_count(retrieve_picklist_entry_count($e, $picklist_id)) + if $$options{flesh_entry_count}; return $BAD_PARAMS unless $e->requestor->id == $picklist->owner; return $picklist; } + +# Returns the number of entries associated with this picklist +sub retrieve_picklist_entry_count { + my($e, $picklist_id) = @_; + my $count = $e->json_query({ + select => { + acqple => [{transform => 'count', column => 'id', alias => 'count'}] + }, + from => 'acqple', + where => {picklist => $picklist_id}} + ); + return $count->[0]->{count}; +} + + + __PACKAGE__->register_method( method => 'retrieve_picklist_name', api_name => 'open-ils.acq.picklist.name.retrieve', @@ -145,7 +153,18 @@ sub retrieve_user_picklist { my($self, $conn, $auth, $options) = @_; my $e = new_editor(authtoken=>$auth); return $e->die_event unless $e->checkauth; - return $e->search_acq_picklist({owner=>$e->requestor->id, name=>{'!='=>''}},{idlist=>$$options{idlist}}); + + # don't grab the PL with name == "", because that is the designated temporary picklist + my $list = $e->search_acq_picklist( + {owner=>$e->requestor->id, name=>{'!='=>''}}, + {idlist=>$$options{idlist}} + ); + + if($$options{flesh_entry_count}) { + $_->entry_count(retrieve_picklist_entry_count($e, $_->id)) for @$list; + }; + + return $list; } diff --git a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py index 29d90a9158..9e880eaa11 100644 --- a/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py +++ b/Open-ILS/web/oilsweb/oilsweb/controllers/acq/picklist.py @@ -91,19 +91,25 @@ class PicklistController(BaseController): ses.connect() if r.ctx.acq.picklist_action == 'move_selected': - for entry_id in r.ctx.acq.picklist_entry_id_list: + self._move_selected(r, ses) - entry = ses.request( - 'open-ils.acq.picklist_entry.retrieve', - r.ctx.core.authtoken, entry_id).recv().content() - entry = oils.event.Event.parse_and_raise(entry) + ses.disconnect() + return redirect_to(controller='acq/picklist', action='list') - entry.picklist(r.ctx.acq.picklist_dest_id) + def _move_selected(self, r, ses): + ''' Moves the selected picklist entry's to the destination picklist ''' + for entry_id in r.ctx.acq.picklist_entry_id_list: + + entry = ses.request( + 'open-ils.acq.picklist_entry.retrieve', + r.ctx.core.authtoken, entry_id).recv().content() + entry = oils.event.Event.parse_and_raise(entry) + + entry.picklist(r.ctx.acq.picklist_dest_id) + + status = ses.request( + 'open-ils.acq.picklist_entry.update', + r.ctx.core.authtoken, entry).recv().content() + oils.event.Event.parse_and_raise(status) - status = ses.request( - 'open-ils.acq.picklist_entry.update', - r.ctx.core.authtoken, entry).recv().content() - status = oils.event.Event.parse_and_raise(status) - ses.disconnect() - return redirect_to(controller='acq/picklist', action='list') diff --git a/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py b/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py index 62e8fab50b..31e1a68b85 100644 --- a/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py +++ b/Open-ILS/web/oilsweb/oilsweb/lib/acq/picklist.py @@ -13,7 +13,7 @@ class PicklistMgr(object): def retrieve(self): picklist = self.ses.request( 'open-ils.acq.picklist.retrieve', - self.request_mgr.ctx.core.authtoken, self.id).recv().content() + self.request_mgr.ctx.core.authtoken, self.id, {'flesh_entry_count':1}).recv().content() oils.event.Event.parse_and_raise(picklist) self.picklist = picklist @@ -74,7 +74,7 @@ class PicklistMgr(object): ''' Returns my list of picklist objects ''' list = self.ses.request( 'open-ils.acq.picklist.user.retrieve', - self.request_mgr.ctx.core.authtoken).recv().content() + self.request_mgr.ctx.core.authtoken, {'flesh_entry_count':1}).recv().content() oils.event.Event.parse_and_raise(list) usermgr = oilsweb.lib.user.User(self.request_mgr.ctx.core) diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html index 3e6966e6d6..433fc32b81 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view_list.html @@ -16,6 +16,7 @@ ${_('Name')} ${_('Creation Date')} ${_('Edit Date')} + ${_('Number of Entries')} @@ -26,6 +27,7 @@ ${picklist.name()} ${picklist.create_time()} ${picklist.edit_time()} + ${picklist.entry_count()} ${_('Delete')} % endfor -- 2.11.0