[MERGE]:openobject-server/trunk-configuration-rework
bzr revid: ksa@tinyerp.co.in-20110419063025-zui24ha67jilse8c
This commit is contained in:
commit
01f64ad6ed
|
@ -1617,5 +1617,30 @@
|
||||||
<field name="currency_id" ref="MUR"/>
|
<field name="currency_id" ref="MUR"/>
|
||||||
<field eval="time.strftime('%Y-01-01')" name="name"/>
|
<field eval="time.strftime('%Y-01-01')" name="name"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="CFA" model="res.currency">
|
||||||
|
<!-- There are in fact 2 CFA currencies:
|
||||||
|
- XAF for the Central African CFA franc
|
||||||
|
- XOF for the West African CFA franc
|
||||||
|
As they are interchangeable, we probably only need one.
|
||||||
|
XOF appears to have "CFA" as symbol, while "XAF" is "FCFA",
|
||||||
|
so let's pick XOF as the ISO Code, to have a code-symbol match.
|
||||||
|
We can keep CFA as XML ID to show that we only have one currency,
|
||||||
|
there is no possible conflict, as no other currency currently
|
||||||
|
has CFA as ISO Code.
|
||||||
|
See http://en.wikipedia.org/wiki/CFA_franc
|
||||||
|
http://en.wikipedia.org/wiki/ISO_4217
|
||||||
|
-->
|
||||||
|
<field name="name">XOF</field>
|
||||||
|
<field name="symbol">CFA</field>
|
||||||
|
<field name="rounding">1</field>
|
||||||
|
<field name="accuracy">4</field>
|
||||||
|
<field name="company_id" ref="main_company"/>
|
||||||
|
</record>
|
||||||
|
<record id="rateCFA" model="res.currency.rate">
|
||||||
|
<field name="rate">655.957</field>
|
||||||
|
<field name="currency_id" ref="CFA"/>
|
||||||
|
<field eval="time.strftime('%Y-01-01')" name="name"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -180,6 +180,7 @@
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
======================
|
======================
|
||||||
Company
|
Company
|
||||||
|
@ -201,10 +202,7 @@
|
||||||
<field name="rml_header1" colspan="4"/>
|
<field name="rml_header1" colspan="4"/>
|
||||||
<field name="rml_footer1" colspan="4"/>
|
<field name="rml_footer1" colspan="4"/>
|
||||||
<field name="rml_footer2" colspan="4"/>
|
<field name="rml_footer2" colspan="4"/>
|
||||||
<field name="currency_id"/>
|
<field name="currency_id" colspan="2"/>
|
||||||
<button name="createReport" string="Preview Report" type="object" icon="gtk-print"/>
|
|
||||||
<separator colspan="4" string="Your Logo - Use a size of about 450x150 pixels."/>
|
|
||||||
<field colspan="4" name="logo" widget="image"/>
|
|
||||||
</page>
|
</page>
|
||||||
<page string="Header/Footer" groups="base.group_extended">
|
<page string="Header/Footer" groups="base.group_extended">
|
||||||
<field colspan="4" name="rml_header" nolabel="1"/>
|
<field colspan="4" name="rml_header" nolabel="1"/>
|
||||||
|
@ -350,14 +348,15 @@
|
||||||
<record id="config_wizard_step_user" model="ir.actions.todo">
|
<record id="config_wizard_step_user" model="ir.actions.todo">
|
||||||
<field name="action_id" ref="action_config_user_form"/>
|
<field name="action_id" ref="action_config_user_form"/>
|
||||||
<field name="sequence">10</field>
|
<field name="sequence">10</field>
|
||||||
<field name="restart">never</field>
|
<field name="type">normal</field>
|
||||||
<field name="state">done</field>
|
<field name="state">done</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="config_wizard_simple_view" model="ir.actions.todo">
|
<record id="config_wizard_simple_view" model="ir.actions.todo">
|
||||||
<field name="action_id" ref="action_config_simple_view_form"/>
|
<field name="action_id" ref="action_config_simple_view_form"/>
|
||||||
<field name="restart">on_trigger</field>
|
<field name="type">special</field>
|
||||||
<field name="sequence">1</field>
|
<field name="sequence">1</field>
|
||||||
<field name="state">skip</field>
|
<field name="state">skip</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||||
"PO-Revision-Date: 2011-02-21 08:40+0000\n"
|
"PO-Revision-Date: 2011-04-10 19:20+0000\n"
|
||||||
"Last-Translator: Niels Huylebroeck <Unknown>\n"
|
"Last-Translator: Mustufa Rangwala (Open ERP) <mra@tinyerp.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2011-02-22 14:26+0000\n"
|
"X-Launchpad-Export-Date: 2011-04-11 05:42+0000\n"
|
||||||
"X-Generator: Launchpad (build 12351)\n"
|
"X-Generator: Launchpad (build 12735)\n"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: view:ir.filters:0
|
#: view:ir.filters:0
|
||||||
|
@ -918,7 +918,7 @@ msgstr "Toegang verwijderen"
|
||||||
#. module: base
|
#. module: base
|
||||||
#: model:res.country,name:base.ne
|
#: model:res.country,name:base.ne
|
||||||
msgid "Niger"
|
msgid "Niger"
|
||||||
msgstr "Nigeria"
|
msgstr "Niger"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: selection:base.language.install,lang:0
|
#: selection:base.language.install,lang:0
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||||
"PO-Revision-Date: 2011-03-24 12:16+0000\n"
|
"PO-Revision-Date: 2011-04-07 04:09+0000\n"
|
||||||
"Last-Translator: Dorin <dhongu@gmail.com>\n"
|
"Last-Translator: Dorin <dhongu@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2011-03-25 06:13+0000\n"
|
"X-Launchpad-Export-Date: 2011-04-08 06:12+0000\n"
|
||||||
"X-Generator: Launchpad (build 12559)\n"
|
"X-Generator: Launchpad (build 12735)\n"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: view:ir.filters:0
|
#: view:ir.filters:0
|
||||||
|
@ -47,6 +47,8 @@ msgid ""
|
||||||
"The second argument of the many2many field %s must be a SQL table !You used "
|
"The second argument of the many2many field %s must be a SQL table !You used "
|
||||||
"%s, which is not a valid SQL table name."
|
"%s, which is not a valid SQL table name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Al doilea parametru a câmpului many2many %s trebuie să fie o tabelă SQL ! %s "
|
||||||
|
"utilizat nu este o tabelă SQL validă."
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: view:ir.values:0
|
#: view:ir.values:0
|
||||||
|
@ -117,6 +119,8 @@ msgid ""
|
||||||
"You can not write in this document (%s) ! Be sure your user belongs to one "
|
"You can not write in this document (%s) ! Be sure your user belongs to one "
|
||||||
"of these groups: %s."
|
"of these groups: %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Nu puteți scrie în acest document (%s) ! Asigurați-vă că utilizatorul "
|
||||||
|
"aparține grupului: %s."
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: help:ir.model.fields,domain:0
|
#: help:ir.model.fields,domain:0
|
||||||
|
@ -125,6 +129,8 @@ msgid ""
|
||||||
"specified as a Python expression defining a list of triplets. For example: "
|
"specified as a Python expression defining a list of triplets. For example: "
|
||||||
"[('color','=','red')]"
|
"[('color','=','red')]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Domeniu opțional pentru a restricționa valorile pentru câmpul de relație, "
|
||||||
|
"specificat ca o listă Python. De exemplu: [('color','=','red')]"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: field:res.partner,ref:0
|
#: field:res.partner,ref:0
|
||||||
|
@ -437,7 +443,7 @@ msgstr "Planificare actualizare"
|
||||||
#: code:addons/orm.py:838
|
#: code:addons/orm.py:838
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Key/value '%s' not found in selection field '%s'"
|
msgid "Key/value '%s' not found in selection field '%s'"
|
||||||
msgstr ""
|
msgstr "Cheia/valoarea '%s' nu este găsită în selecția câmpului '%s'"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: help:res.country,code:0
|
#: help:res.country,code:0
|
||||||
|
@ -784,7 +790,7 @@ msgstr "Categorii subordonate"
|
||||||
#. module: base
|
#. module: base
|
||||||
#: model:ir.model,name:base.model_ir_config_parameter
|
#: model:ir.model,name:base.model_ir_config_parameter
|
||||||
msgid "ir.config_parameter"
|
msgid "ir.config_parameter"
|
||||||
msgstr ""
|
msgstr "ir.config_parameter"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: selection:base.language.export,format:0
|
#: selection:base.language.export,format:0
|
||||||
|
@ -868,7 +874,7 @@ msgstr "Tranzitii"
|
||||||
#: code:addons/orm.py:4020
|
#: code:addons/orm.py:4020
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Record #%d of %s not found, cannot copy!"
|
msgid "Record #%d of %s not found, cannot copy!"
|
||||||
msgstr ""
|
msgstr "Înregistrarea #%d a %s negăsită, nu se poate face copia!"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: field:ir.module.module,contributors:0
|
#: field:ir.module.module,contributors:0
|
||||||
|
@ -2150,7 +2156,7 @@ msgstr ""
|
||||||
#. module: base
|
#. module: base
|
||||||
#: model:ir.model,name:base.model_ir_module_module_dependency
|
#: model:ir.model,name:base.model_ir_module_module_dependency
|
||||||
msgid "Module dependency"
|
msgid "Module dependency"
|
||||||
msgstr "Dependinţele modulului"
|
msgstr "Dependenţele modulului"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: selection:publisher_warranty.contract.wizard,state:0
|
#: selection:publisher_warranty.contract.wizard,state:0
|
||||||
|
@ -2193,7 +2199,7 @@ msgstr ""
|
||||||
#: view:ir.module.module:0
|
#: view:ir.module.module:0
|
||||||
#: field:ir.module.module,dependencies_id:0
|
#: field:ir.module.module,dependencies_id:0
|
||||||
msgid "Dependencies"
|
msgid "Dependencies"
|
||||||
msgstr "Dependinţe"
|
msgstr "Dependențe"
|
||||||
|
|
||||||
#. module: base
|
#. module: base
|
||||||
#: field:multi_company.default,company_id:0
|
#: field:multi_company.default,company_id:0
|
||||||
|
|
|
@ -1878,7 +1878,7 @@
|
||||||
<tree editable="bottom" string="Config Wizard Steps">
|
<tree editable="bottom" string="Config Wizard Steps">
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
<field name="action_id"/>
|
<field name="action_id"/>
|
||||||
<field name="restart"/>
|
<field name="type"/>
|
||||||
<field name="state" readonly="1"/>
|
<field name="state" readonly="1"/>
|
||||||
<button name="action_launch" states="open" string="Launch" type="object" icon="gtk-execute" help="Launch Configuration Wizard"/>
|
<button name="action_launch" states="open" string="Launch" type="object" icon="gtk-execute" help="Launch Configuration Wizard"/>
|
||||||
<button name="action_open" states="cancel,skip,done"
|
<button name="action_open" states="cancel,skip,done"
|
||||||
|
@ -1896,7 +1896,7 @@
|
||||||
<form editable="bottom" string="Config Wizard Steps">
|
<form editable="bottom" string="Config Wizard Steps">
|
||||||
<group colspan="4" col="6">
|
<group colspan="4" col="6">
|
||||||
<field name="action_id"/>
|
<field name="action_id"/>
|
||||||
<field name="restart"/>
|
<field name="type"/>
|
||||||
<field name="sequence"/>
|
<field name="sequence"/>
|
||||||
</group>
|
</group>
|
||||||
<separator string="Groups" colspan="4"/>
|
<separator string="Groups" colspan="4"/>
|
||||||
|
@ -1918,10 +1918,11 @@
|
||||||
<field name="type">search</field>
|
<field name="type">search</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<search string="Search Actions">
|
<search string="Search Actions">
|
||||||
<filter string="To Do" name="todo" icon="terp-camera_test" domain=" ['|',('state','=','open'),'&',('state','=','skip'),('restart','=','on_trigger')]" help="Todo State Or (Skip State And ontrigger Restart)"/>
|
<filter string="To Do" name="todo" icon="terp-camera_test" domain=" [('state','=','open')]" help="Wizards to be Launched"/>
|
||||||
<separator orientation="vertical"/>
|
<separator orientation="vertical"/>
|
||||||
|
<field name="action_id"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
<field name="restart"/>
|
<field name="type"/>
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -815,14 +815,14 @@ class ir_actions_todo(osv.osv):
|
||||||
'sequence': fields.integer('Sequence'),
|
'sequence': fields.integer('Sequence'),
|
||||||
'state': fields.selection(TODO_STATES, string='State', required=True),
|
'state': fields.selection(TODO_STATES, string='State', required=True),
|
||||||
'name':fields.char('Name', size=64),
|
'name':fields.char('Name', size=64),
|
||||||
'restart': fields.selection([('on_trigger','On Trigger'),('always','Always'),('never','Never')],'Restart',required=True),
|
'type': fields.selection([('special','Special'),('normal','Normal'),('normal_recurring','Normal Recurring')],'Type',required=True),
|
||||||
'groups_id':fields.many2many('res.groups', 'res_groups_action_rel', 'uid', 'gid', 'Groups'),
|
'groups_id':fields.many2many('res.groups', 'res_groups_action_rel', 'uid', 'gid', 'Groups'),
|
||||||
'note':fields.text('Text', translate=True),
|
'note':fields.text('Text', translate=True),
|
||||||
}
|
}
|
||||||
_defaults={
|
_defaults={
|
||||||
'state': 'open',
|
'state': 'open',
|
||||||
'sequence': 10,
|
'sequence': 10,
|
||||||
'restart': 'on_trigger',
|
'type': 'special',
|
||||||
}
|
}
|
||||||
_order="sequence,name,id"
|
_order="sequence,name,id"
|
||||||
|
|
||||||
|
@ -832,8 +832,8 @@ class ir_actions_todo(osv.osv):
|
||||||
context = {}
|
context = {}
|
||||||
wizard_id = ids and ids[0] or False
|
wizard_id = ids and ids[0] or False
|
||||||
wizard = self.browse(cr, uid, wizard_id, context=context)
|
wizard = self.browse(cr, uid, wizard_id, context=context)
|
||||||
res = self.pool.get('ir.actions.act_window').read(cr, uid, wizard.action_id.id, ['name', 'view_type', 'view_mode', 'res_model', 'context', 'views', 'type'], context=context)
|
res = self.pool.get('ir.actions.act_window').read(cr, uid, wizard.action_id.id, ['name', 'view_type', 'view_mode', 'res_model', 'context', 'views', 'type','target'], context=context)
|
||||||
res.update({'target':'new', 'nodestroy': True})
|
res.update({'nodestroy': True})
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def action_open(self, cr, uid, ids, context=None):
|
def action_open(self, cr, uid, ids, context=None):
|
||||||
|
|
|
@ -243,11 +243,10 @@ class ir_ui_menu(osv.osv):
|
||||||
'web_icon_data': False,
|
'web_icon_data': False,
|
||||||
'web_icon_hover_data': False,
|
'web_icon_hover_data': False,
|
||||||
}
|
}
|
||||||
if not menu.parent_id:
|
if menu.web_icon_hover:
|
||||||
if menu.web_icon_hover:
|
res[menu.id]['web_icon_hover_data'] = self.read_image(menu.web_icon_hover)
|
||||||
res[menu.id]['web_icon_hover_data'] = self.read_image(menu.web_icon_hover)
|
if menu.web_icon:
|
||||||
if menu.web_icon:
|
res[menu.id]['web_icon_data'] = self.read_image(menu.web_icon)
|
||||||
res[menu.id]['web_icon_data'] = self.read_image(menu.web_icon)
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
|
|
|
@ -27,7 +27,7 @@ class base_module_configuration(osv.osv_memory):
|
||||||
_name = "base.module.configuration"
|
_name = "base.module.configuration"
|
||||||
|
|
||||||
def start(self, cr, uid, ids, context=None):
|
def start(self, cr, uid, ids, context=None):
|
||||||
todo_ids = self.pool.get('ir.actions.todo').search(cr, uid, ['|', '|', ('restart','=','always'), ('state', '=', 'open'), '&', ('state', '=', 'skip'), ('restart', '=', 'on_trigger')])
|
todo_ids = self.pool.get('ir.actions.todo').search(cr, uid, ['|', '|', ('type','=','normal_recurring'), ('state', '=', 'open'), '&', ('state', '=', 'skip'), ('type', '=', 'special')])
|
||||||
if not todo_ids:
|
if not todo_ids:
|
||||||
# When there is no wizard todo it will display message
|
# When there is no wizard todo it will display message
|
||||||
data_obj = self.pool.get('ir.model.data')
|
data_obj = self.pool.get('ir.model.data')
|
||||||
|
|
|
@ -75,7 +75,6 @@ class multi_company_default(osv.osv):
|
||||||
|
|
||||||
multi_company_default()
|
multi_company_default()
|
||||||
|
|
||||||
|
|
||||||
class res_company(osv.osv):
|
class res_company(osv.osv):
|
||||||
_name = "res.company"
|
_name = "res.company"
|
||||||
_description = 'Companies'
|
_description = 'Companies'
|
||||||
|
@ -145,6 +144,26 @@ class res_company(osv.osv):
|
||||||
return []
|
return []
|
||||||
ids = self.search(cr, uid, [('parent_id','child_of',[company])])
|
ids = self.search(cr, uid, [('parent_id','child_of',[company])])
|
||||||
return ids
|
return ids
|
||||||
|
|
||||||
|
# For Report
|
||||||
|
|
||||||
|
def createReport(cr, uid, report, ids, name=False):
|
||||||
|
files = []
|
||||||
|
for id in ids:
|
||||||
|
try:
|
||||||
|
service = netsvc.LocalService(report)
|
||||||
|
(result, format) = service.create(cr, uid, [id], {}, {})
|
||||||
|
if not name:
|
||||||
|
report_file = '/tmp/reports'+ str(id) + '.pdf'
|
||||||
|
else:
|
||||||
|
report_file = name
|
||||||
|
fp = open(report_file,'wb+')
|
||||||
|
fp.write(result);
|
||||||
|
fp.close();
|
||||||
|
files += [report_file]
|
||||||
|
except Exception,e:
|
||||||
|
continue
|
||||||
|
return files
|
||||||
|
|
||||||
def _get_partner_hierarchy(self, cr, uid, company_id, context={}):
|
def _get_partner_hierarchy(self, cr, uid, company_id, context={}):
|
||||||
if company_id:
|
if company_id:
|
||||||
|
|
|
@ -66,6 +66,7 @@ class res_config_configurable(osv.osv_memory):
|
||||||
def _next_action(self, cr, uid, context=None):
|
def _next_action(self, cr, uid, context=None):
|
||||||
todos = self.pool.get('ir.actions.todo')
|
todos = self.pool.get('ir.actions.todo')
|
||||||
self.__logger.info('getting next %s', todos)
|
self.__logger.info('getting next %s', todos)
|
||||||
|
# Don't forget to change the domain in search view, if this condition is changed
|
||||||
active_todos = todos.search(cr, uid, [('state','=','open')],
|
active_todos = todos.search(cr, uid, [('state','=','open')],
|
||||||
limit=1)
|
limit=1)
|
||||||
if active_todos:
|
if active_todos:
|
||||||
|
@ -120,7 +121,7 @@ class res_config_configurable(osv.osv_memory):
|
||||||
def start(self, cr, uid, ids, context=None):
|
def start(self, cr, uid, ids, context=None):
|
||||||
ids2 = self.pool.get('ir.actions.todo').search(cr, uid, [], context=context)
|
ids2 = self.pool.get('ir.actions.todo').search(cr, uid, [], context=context)
|
||||||
for todo in self.pool.get('ir.actions.todo').browse(cr, uid, ids2, context=context):
|
for todo in self.pool.get('ir.actions.todo').browse(cr, uid, ids2, context=context):
|
||||||
if (todo.restart=='always'):
|
if (todo.type=='normal_recurring'):
|
||||||
todo.write({'state':'open'})
|
todo.write({'state':'open'})
|
||||||
return self.next(cr, uid, ids, context)
|
return self.next(cr, uid, ids, context)
|
||||||
|
|
||||||
|
|
|
@ -2172,6 +2172,7 @@ class orm(orm_template):
|
||||||
if fget[groupby]['type'] in ('date', 'datetime'):
|
if fget[groupby]['type'] in ('date', 'datetime'):
|
||||||
flist = "to_char(%s,'yyyy-mm') as %s " % (qualified_groupby_field, groupby)
|
flist = "to_char(%s,'yyyy-mm') as %s " % (qualified_groupby_field, groupby)
|
||||||
groupby = "to_char(%s,'yyyy-mm')" % (qualified_groupby_field)
|
groupby = "to_char(%s,'yyyy-mm')" % (qualified_groupby_field)
|
||||||
|
qualified_groupby_field = groupby
|
||||||
else:
|
else:
|
||||||
flist = qualified_groupby_field
|
flist = qualified_groupby_field
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue