diff --git a/bika/lims/browser/js/bika.lims.worksheet.js b/bika/lims/browser/js/bika.lims.worksheet.js
index a121d94651..781c842478 100644
--- a/bika/lims/browser/js/bika.lims.worksheet.js
+++ b/bika/lims/browser/js/bika.lims.worksheet.js
@@ -43,7 +43,7 @@ function WorksheetAddAnalysesView() {
// search form - selecting a category fills up the service selector
$('[name="list_getCategoryTitle"]').live("change", function(){
- val = $('[name="list_getCategoryTitle"]').val();
+ val = $('[name="list_getCategoryTitle"]').find(":selected").val();
if(val == 'any'){
$('[name="list_Title"]').empty();
$('[name="list_Title"]').append("");
@@ -53,7 +53,7 @@ function WorksheetAddAnalysesView() {
url: window.location.href.split("?")[0].replace("/add_analyses","") + "/getServices",
type: 'POST',
data: {'_authenticator': $('input[name="_authenticator"]').val(),
- 'getCategoryTitle': val},
+ 'getCategoryUID': val},
dataType: "json",
success: function(data, textStatus, $XHR){
current_service_selection = $('[name="list_Title"]').val();
@@ -65,7 +65,9 @@ function WorksheetAddAnalysesView() {
} else {
selected = '';
}
- $('[name="list_Title"]').append("");
+ $('[name="list_Title"]').append(
+ "");
}
}
});
@@ -102,6 +104,8 @@ function WorksheetAddAnalysesView() {
replaceTarget: true,
data: form.formToArray(),
success: function () {
+ // Reload bika listing transitions watchers
+ window.bika.lims.BikaListingTableView.load();
}
}
var url = window.location.href.split("?")[0].split("/add_analyses")[0];
diff --git a/bika/lims/browser/worksheet/ajax.py b/bika/lims/browser/worksheet/ajax.py
index 4d2fcbf6a4..6675d47b8b 100644
--- a/bika/lims/browser/worksheet/ajax.py
+++ b/bika/lims/browser/worksheet/ajax.py
@@ -26,11 +26,13 @@ def __init__(self, context, request):
def __call__(self):
plone.protect.CheckAuthenticator(self.request)
bsc = getToolByName(self.context, 'bika_setup_catalog')
- return json.dumps([c.Title for c in
- bsc(portal_type = 'AnalysisService',
- getCategoryTitle = self.request.get('getCategoryTitle', ''),
- inactive_state = 'active',
- sort_on = 'sortable_title')])
+ brains = bsc(
+ portal_type='AnalysisService',
+ getCategoryUID=self.request.get('getCategoryUID', ''),
+ inactive_state='active',
+ sort_on='sortable_title')
+ voc = [[brain.UID, brain.Title] for brain in brains]
+ return json.dumps(voc)
class AttachAnalyses():
diff --git a/bika/lims/browser/worksheet/templates/add_analyses.pt b/bika/lims/browser/worksheet/templates/add_analyses.pt
index a3e944f837..cb0544a68c 100644
--- a/bika/lims/browser/worksheet/templates/add_analyses.pt
+++ b/bika/lims/browser/worksheet/templates/add_analyses.pt
@@ -43,14 +43,15 @@
-