diff options
| author | mra (Open ERP) <mra@tinyerp.com> | 2010-04-06 15:48:27 +0530 |
|---|---|---|
| committer | mra (Open ERP) <mra@tinyerp.com> | 2010-04-06 15:48:27 +0530 |
| commit | 3ef0fea250076f6f4763886ea10dbba40f187829 (patch) | |
| tree | 9c57478c9a024dcf5430a293cc18e329fb568f33 /addons/project_long_term | |
| parent | 5ee2d53302ea6e67b372382904ee950cd98c76d7 (diff) | |
[ADD] Project_long_term: compute phase date wizard => osv memory convert
bzr revid: mra@tinyerp.com-20100406101827-6yhk7535fvxbhi2w
Diffstat (limited to 'addons/project_long_term')
| -rw-r--r-- | addons/project_long_term/__terp__.py | 3 | ||||
| -rw-r--r-- | addons/project_long_term/project_long_term_wizard.xml | 6 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/__init__.py | 4 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_phases.py (renamed from addons/project_long_term/wizard/compute_phases_date.py) | 73 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_phases_view.xml | 35 |
5 files changed, 70 insertions, 51 deletions
diff --git a/addons/project_long_term/__terp__.py b/addons/project_long_term/__terp__.py index 25529f5b245..8fa928833fd 100644 --- a/addons/project_long_term/__terp__.py +++ b/addons/project_long_term/__terp__.py @@ -42,7 +42,8 @@ "security/ir.model.access.csv", "project_long_term_wizard.xml" , "project_long_term_view.xml", - "project_long_term_workflow.xml" + "project_long_term_workflow.xml", + "wizard/project_compute_phases_view.xml" ], 'installable': True, 'active': False, diff --git a/addons/project_long_term/project_long_term_wizard.xml b/addons/project_long_term/project_long_term_wizard.xml index 0904bbb4429..927b43d196c 100644 --- a/addons/project_long_term/project_long_term_wizard.xml +++ b/addons/project_long_term/project_long_term_wizard.xml @@ -2,19 +2,19 @@ <openerp> <data> - <wizard id="wizard_compute_phase" menu="False" model="project.phase" name="wizard.compute.phases" string="Compute Phase Scheduling"/> + <!--<wizard id="wizard_compute_phase" menu="False" model="project.phase" name="wizard.compute.phases" string="Compute Phase Scheduling"/>--> <wizard id="wizard_schedule_task" menu="False" model="project.phase" name="phase.schedule.tasks" string="Schedule Tasks"/> <wizard id="wizard_compute_task" model="project.task" menu="False" name="wizard.compute.tasks" string="Compute Task Scheduling"/> <menuitem icon="terp-project" id="base.menu_main" name="Project Management" sequence="1"/> <menuitem id="base.menu_pm_planning" name="Planning" parent="base.menu_main" sequence="3"/> - <menuitem + <!-- <menuitem action="wizard_compute_phase" id="menu_wizard_compute_phase" parent="base.menu_pm_planning" type="wizard" sequence="1"/> - +--> <menuitem action="wizard_compute_task" id="menu_wizard_compute_task" diff --git a/addons/project_long_term/wizard/__init__.py b/addons/project_long_term/wizard/__init__.py index 06880dbe6e2..b046ea6d97c 100644 --- a/addons/project_long_term/wizard/__init__.py +++ b/addons/project_long_term/wizard/__init__.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*-s ############################################################################## # # OpenERP, Open Source Management Solution @@ -19,7 +19,7 @@ # ############################################################################## -import compute_phases_date +import project_compute_phases import compute_tasks_date import schedule_tasks import working_calendar diff --git a/addons/project_long_term/wizard/compute_phases_date.py b/addons/project_long_term/wizard/project_compute_phases.py index 61f3bb42251..a9b800d20ce 100644 --- a/addons/project_long_term/wizard/compute_phases_date.py +++ b/addons/project_long_term/wizard/project_compute_phases.py @@ -22,25 +22,19 @@ import datetime from resource.faces import * from new import classobj -import wizard -import pooler from tools.translate import _ +from osv import fields, osv import working_calendar as wkcal -compute_form = """<?xml version="1.0" ?> -<form string="Compute Scheduling of Phases"> +class project_compute_phases(osv.osv_memory): - <field name="project_id" colspan="4"/> + _name = 'project.compute.phases' + _description = 'Project Compute Phases' + _columns = { + 'project_id': fields.many2one('project.project', 'Project', help='If you do not specify project then it will take All projects with state=draft, open, pending') + } -</form>""" - -compute_fields = { - 'project_id': {'string':'Project', 'type':'many2one', 'relation':'project.project', 'help': 'If you do not specify project then it will take All projects with state=draft, open, pending'}, - -} - -class wizard_compute_phases(wizard.interface): def _phase_schedule(self, cr, uid, phase, start_date, calendar_id=False, context={}): """Schedule phase with the start date till all the next phases are completed. @@ -49,10 +43,9 @@ class wizard_compute_phases(wizard.interface): calendar_id -- working calendar of the project """ - pool = pooler.get_pool(cr.dbname) - phase_obj = pool.get('project.phase') - resource_obj = pool.get('resource.resource') - uom_obj = pool.get('product.uom') + phase_obj = self.pool.get('project.phase') + resource_obj = self.pool.get('resource.resource') + uom_obj = self.pool.get('product.uom') phase_resource_obj = False if phase: leaves = [] @@ -117,15 +110,18 @@ class wizard_compute_phases(wizard.interface): else: continue - def _compute_date(self, cr, uid, data, context={}): + def compute_date(self, cr, uid, ids, context=None): """ Compute the phases for scheduling. """ - pool = pooler.get_pool(cr.dbname) - project_obj = pool.get('project.project') - phase_obj = pool.get('project.phase') - if data['form']['project_id']: # If project mentioned find its phases - project_id = project_obj.browse(cr, uid, data['form']['project_id'], context=context) + + if context is None: + context = {} + project_obj = self.pool.get('project.project') + phase_obj = self.pool.get('project.phase') + data = self.read(cr, uid, ids, [], context=context)[0] + if data['project_id']: # If project mentioned find its phases + project_id = project_obj.browse(cr, uid, data['project_id'], context=context) phase_ids = phase_obj.search(cr, uid, [('project_id', '=', project_id.id), ('state', 'in', ['draft', 'open', 'pending']), ('previous_phase_ids', '=', False) @@ -143,37 +139,24 @@ class wizard_compute_phases(wizard.interface): start_dt = datetime.datetime.strftime((datetime.datetime.strptime(start_date, "%Y-%m-%d")), "%Y-%m-%d %H:%M") calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False self._phase_schedule(cr, uid, phase, start_dt, calendar_id, context=context) - return {} + return self._open_phases_list(cr, uid, data, context=context) - def _open_phases_list(self, cr, uid, data, context): + def _open_phases_list(self, cr, uid, data, context=None): """ Return the scheduled phases list. """ - pool = pooler.get_pool(cr.dbname) - mod_obj = pool.get('ir.model.data') - act_obj = pool.get('ir.actions.act_window') + if context is None: + context = {} + mod_obj = self.pool.get('ir.model.data') + act_obj = self.pool.get('ir.actions.act_window') result = mod_obj._get_id(cr, uid, 'project_long_term', 'act_project_phase') id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id'] result = act_obj.read(cr, uid, [id], context=context)[0] result['domain'] = [('state', 'not in', ['cancelled','done'])] - if data['form']['project_id']: - result['domain'] = [('project_id', '=', data['form']['project_id']), + if data['project_id']: + result['domain'] = [('project_id', '=', data['project_id']), ('state', 'not in', ['cancelled','done'])] return result - states = { - 'init': { - 'actions': [], - 'result': {'type': 'form', 'arch': compute_form, 'fields': compute_fields, 'state':[ - ('end', 'Cancel', 'gtk-cancel'), - ('compute', 'Compute', 'gtk-ok', True) - - ]}, - }, - 'compute': { - 'actions': [_compute_date], - 'result': {'type': 'action', 'action': _open_phases_list, 'state': 'end'}, - }, - } -wizard_compute_phases('wizard.compute.phases') +project_compute_phases() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml new file mode 100644 index 00000000000..9ba57d1625f --- /dev/null +++ b/addons/project_long_term/wizard/project_compute_phases_view.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + + <record id="view_project_compute_phases" model="ir.ui.view"> + <field name="name">Compute Scheduling of Phases</field> + <field name="model">project.compute.phases</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Compute Scheduling of Phases"> + <field name="project_id" /> + <group colspan="4" col="6"> + <button icon="gtk-cancel" special="cancel" string="_Cancel"/> + <button icon="gtk-ok" name="compute_date" string="Compute" type="object"/> + </group> + </form> + </field> + </record> + + <record id="action_project_compute_phases" model="ir.actions.act_window"> + <field name="name">Compute Phase Scheduling</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">project.compute.phases</field> + <field name="view_type">form</field> + <field name="view_mode">form</field> + <field name="view_id" ref="view_project_compute_phases"/> + <field name="context">{'record_id' : active_id}</field> + <field name="target">new</field> + </record> + + <menuitem id="menu_compute_phase" name="Compute Phase Scheduling" + parent="base.menu_pm_planning" action="action_project_compute_phases"/> + + </data> +</openerp>
\ No newline at end of file |
