From 67b88f58e27b205d54a130bd30c21ef4ca982097 Mon Sep 17 00:00:00 2001 From: Lucas Carvalho <lucas@nexedi.com> Date: Fri, 1 Apr 2011 17:30:33 +0000 Subject: [PATCH] Added the implementation to create the Solver object and its subobjects. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@45004 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../Document/SolverConfiguratorItem.py | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/product/ERP5Configurator/Document/SolverConfiguratorItem.py b/product/ERP5Configurator/Document/SolverConfiguratorItem.py index f9b6d3b127..5de6da0004 100644 --- a/product/ERP5Configurator/Document/SolverConfiguratorItem.py +++ b/product/ERP5Configurator/Document/SolverConfiguratorItem.py @@ -56,6 +56,26 @@ class SolverConfiguratorItem(ConfiguratorItemMixin, XMLObject): def build(self, business_configuration): portal = self.getPortalObject() - simulation_rule_solver = portal.ERPSite_getConfiguratorSimulationSolverDict() - raise NotImplemented -# self.install(rule, business_configuration) + + solver = getattr(portal.portal_solvers, self.getId(), None) + if solver is None: + solver_property_dict = \ + business_configuration.BusinessConfiguration_getSolverPropertyDict() + property_dict = solver_property_dict.get(self.getId()) + argument_dict = {} + + for k, v in property_dict.iteritems(): + if k not in ("content_list",) and k in self.showDict(): + argument_dict[k] = v + + solver = portal.portal_solvers.newContent(portal_type="Solver Type", + id=argument_dict.pop('id')) + solver.edit(**argument_dict) + + for information_dict in self.content_list: + portal_type = information_dict.pop('portal_type') + id = information_dict.pop('id') + action = solver.newContent(portal_type=portal_type, id=id) + action.edit(**information_dict) + + self.install(solver, business_configuration) -- 2.30.9