Skip to content

Commit 8883279

Browse files
authored
Merge pull request #371 from Nihadness/reflex-rule-integration
Reflex Rules don't have 'inactive_state' values set.
2 parents 0b918c8 + 64fb35f commit 8883279

File tree

8 files changed

+75
-3
lines changed

8 files changed

+75
-3
lines changed

CHANGES.rst

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ Changelog
6969
- #364 Error on Manage Results view while Adding new Analyses from different Category
7070
- #365 Lims Installation fails during setting client permissions in bika setup.
7171
- #358 Merged updates for AR Add2
72+
- #371 Reflex Rules don't have 'inactive_state' values set.
7273

7374

7475
1.0.0 (2017-10-13)

bika/lims/controlpanel/bika_instruments.py

-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ def folderitems(self):
113113
if not data:
114114
items[x]['ExpiryDate'] = _("No date set")
115115
else:
116-
import pdb;pdb.set_trace()
117116
items[x]['ExpiryDate'] = data.asdatetime().strftime(self.date_format_short)
118117

119118
if obj.isOutOfDate():

bika/lims/profiles/default/metadata.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0"?>
22
<metadata>
3-
<version>1.1.3</version>
3+
<version>1.1.4</version>
44
<dependencies>
55
<dependency>profile-jarn.jsi18n:default</dependency>
66
<dependency>profile-Products.ATExtensions:default</dependency>

bika/lims/profiles/default/workflows.xml

+5
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,11 @@
406406
<bound-workflow workflow_id="bika_inactive_workflow"/>
407407
</type>
408408

409+
<!-- Reflex Rules -->
410+
<type type_id="ReflexRule">
411+
<bound-workflow workflow_id="bika_inactive_workflow"/>
412+
</type>
413+
409414
<!-- Reject Analysis -->
410415
<type type_id="RejectAnalysis">
411416
<bound-workflow workflow_id="bika_reject_analysis_workflow"/>

bika/lims/skins/bika/bika_widgets/reflexrulewidget.js

+6
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,9 @@ jQuery(function($){
564564
*/
565565
function setup_svof(setupdata){
566566
var rules = setupdata.saved_actions.rules;
567+
if(!rules || rules.length==0){
568+
return;
569+
}
567570
var rulescontainers = $('td.rulescontainer');
568571

569572
$.each(rulescontainers,function(index1, element1){
@@ -591,6 +594,9 @@ jQuery(function($){
591594
*/
592595
function setup_worksheettemplate(setupdata){
593596
var rules = setupdata.saved_actions.rules;
597+
if(!rules || rules.length==0){
598+
return;
599+
}
594600
var rulescontainers = $('td.rulescontainer');
595601
$.each(rulescontainers,function(index1, element1){
596602
var wsts = $(element1).find('select[id^="ReflexRules-worksheettemplate-"]');

bika/lims/upgrade/configure.zcml

+7
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,11 @@
4545
handler="bika.lims.upgrade.v01_01_003.upgrade"
4646
profile="bika.lims:default"/>
4747

48+
<genericsetup:upgradeStep
49+
title="Upgrade to Bika LIMS Evo 1.1.4"
50+
source="1.1.3"
51+
destination="1.1.4"
52+
handler="bika.lims.upgrade.v01_01_004.upgrade"
53+
profile="bika.lims:default"/>
54+
4855
</configure>

bika/lims/upgrade/v01_01_004.py

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from Acquisition import aq_inner
2+
from Acquisition import aq_parent
3+
from Products.CMFCore.utils import getToolByName
4+
from bika.lims import api
5+
from bika.lims import logger
6+
from bika.lims.config import PROJECTNAME as product
7+
from bika.lims.upgrade import upgradestep
8+
from bika.lims.upgrade.utils import UpgradeUtils
9+
10+
version = '1.1.4'
11+
profile = 'profile-{0}:default'.format(product)
12+
13+
14+
@upgradestep(product, version)
15+
def upgrade(tool):
16+
portal = aq_parent(aq_inner(tool))
17+
setup = portal.portal_setup
18+
ut = UpgradeUtils(portal)
19+
ver_from = ut.getInstalledVersion(product)
20+
21+
if ut.isOlderVersion(product, version):
22+
logger.info("Skipping upgrade of {0}: {1} > {2}".format(
23+
product, ver_from, version))
24+
# The currently installed version is more recent than the target
25+
# version of this upgradestep
26+
return True
27+
28+
logger.info("Upgrading {0}: {1} -> {2}".format(product, ver_from, version))
29+
30+
# Add inactive_state workflow for Reflex Rules
31+
setup.runImportStepFromProfile(profile, 'workflow')
32+
update_reflexrules_workflow_state(portal)
33+
34+
logger.info("{0} upgraded to version {1}".format(product, version))
35+
return True
36+
37+
38+
def update_reflexrules_workflow_state(portal):
39+
"""
40+
Updates Reflex Rules' inactive_state, otherwise they don't have it by
41+
default.
42+
:param portal: Portal object
43+
:return: None
44+
"""
45+
wf_tool = getToolByName(portal, 'portal_workflow')
46+
logger.info("Updating Reflex Rules' 'inactive_state's...")
47+
wf = wf_tool.getWorkflowById("bika_inactive_workflow")
48+
uc = api.get_tool('portal_catalog')
49+
r_rules = uc(portal_type='ReflexRule')
50+
for rr in r_rules:
51+
obj = rr.getObject()
52+
wf.updateRoleMappingsFor(obj)
53+
obj.reindexObject()
54+
logger.info("Reflex Rules' 'inactive_state's were updated.")

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from setuptools import setup, find_packages
77

8-
version = '1.1.3'
8+
version = '1.1.4'
99

1010
setup(name='bika.lims',
1111
version=version,

0 commit comments

Comments
 (0)