[MERGE] forward port branch 10.0 up to e686385138
This commit is contained in:
@@ -3555,8 +3555,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.actions.act_window,help:crm.crm_opportunity_report_action_lead
|
#: model:ir.actions.act_window,help:crm.crm_opportunity_report_action_lead
|
||||||
msgid "This report analyses the source of your leads\n"
|
msgid "This report analyses the source of your leads."
|
||||||
"(including those converted into opportunities)."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
|
|||||||
@@ -77,8 +77,8 @@
|
|||||||
<field name="domain">[('probability', '=', 100)]</field>
|
<field name="domain">[('probability', '=', 100)]</field>
|
||||||
<field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['country_id']}</field>
|
<field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['country_id']}</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="ir_filters_crm_opportunity_report_next_action" model="ir.filters">
|
<record id="filter_opportunity_expected_revenue" model="ir.filters">
|
||||||
<field name="name">Expected Revenus by Team</field>
|
<field name="name">Expected Revenue by Team</field>
|
||||||
<field name="model_id">crm.opportunity.report</field>
|
<field name="model_id">crm.opportunity.report</field>
|
||||||
<field name="user_id" eval="False"/>
|
<field name="user_id" eval="False"/>
|
||||||
<field name="context">{'group_by': ['create_date:month', 'team_id'], 'measures': ['expected_revenue', '__count']}</field>
|
<field name="context">{'group_by': ['create_date:month', 'team_id'], 'measures': ['expected_revenue', '__count']}</field>
|
||||||
@@ -191,13 +191,12 @@ with the the sales channel.</field>
|
|||||||
<field name="res_model">crm.opportunity.report</field>
|
<field name="res_model">crm.opportunity.report</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">pivot,graph</field>
|
<field name="view_mode">pivot,graph</field>
|
||||||
<field name="context">{'search_default_current': True, 'active_test': True}</field>
|
<field name="context">{'search_default_current': True, 'active_test': True, 'search_default_lead': True}</field>
|
||||||
<field name="view_ids"
|
<field name="view_ids"
|
||||||
eval="[(5, 0, 0),
|
eval="[(5, 0, 0),
|
||||||
(0, 0, {'view_mode': 'pivot', 'view_id': ref('crm_opportunity_report_view_pivot_lead')}),
|
(0, 0, {'view_mode': 'pivot', 'view_id': ref('crm_opportunity_report_view_pivot_lead')}),
|
||||||
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph_lead')})]"/>
|
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph_lead')})]"/>
|
||||||
<field name="help">This report analyses the source of your leads
|
<field name="help">This report analyses the source of your leads.</field>
|
||||||
(including those converted into opportunities).</field>
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<menuitem
|
<menuitem
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class MrpBom(models.Model):
|
|||||||
default='asap', required=True)
|
default='asap', required=True)
|
||||||
picking_type_id = fields.Many2one(
|
picking_type_id = fields.Many2one(
|
||||||
'stock.picking.type', 'Picking Type', domain=[('code', '=', 'mrp_operation')],
|
'stock.picking.type', 'Picking Type', domain=[('code', '=', 'mrp_operation')],
|
||||||
help="When a procurement has a ‘produce’ route with a picking type set, it will try to create "
|
help=u"When a procurement has a ‘produce’ route with a picking type set, it will try to create "
|
||||||
"a Manufacturing Order for that product using a BoM of the same picking type. That allows "
|
"a Manufacturing Order for that product using a BoM of the same picking type. That allows "
|
||||||
"to define procurement rules which trigger different manufacturing orders with different BoMs. ")
|
"to define procurement rules which trigger different manufacturing orders with different BoMs. ")
|
||||||
company_id = fields.Many2one(
|
company_id = fields.Many2one(
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
<page string="Miscellaneous">
|
<page string="Miscellaneous">
|
||||||
<group>
|
<group>
|
||||||
<group groups="stock.group_stock_multi_locations">
|
<group groups="stock.group_stock_multi_locations">
|
||||||
<field name="picking_type_id" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
<field name="picking_type_id" domain="[('code', '=', 'mrp_operation')]" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
||||||
<field name="location_src_id" domain="[('usage','=','internal')]" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
<field name="location_src_id" domain="[('usage','=','internal')]" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
||||||
<field name="location_dest_id" domain="[('usage','=','internal')]" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
<field name="location_dest_id" domain="[('usage','=','internal')]" attrs="{'readonly': [('has_moves', '=', True)]}"/>
|
||||||
</group>
|
</group>
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ class AuthorizeAPI():
|
|||||||
payment_profile = etree.SubElement(profile, "paymentProfiles")
|
payment_profile = etree.SubElement(profile, "paymentProfiles")
|
||||||
etree.SubElement(payment_profile, "customerType").text = 'business' if partner.is_company else 'individual'
|
etree.SubElement(payment_profile, "customerType").text = 'business' if partner.is_company else 'individual'
|
||||||
billTo = etree.SubElement(payment_profile, "billTo")
|
billTo = etree.SubElement(payment_profile, "billTo")
|
||||||
etree.SubElement(billTo, "address").text = (partner.street + (partner.street2 if partner.street2 else '')) or None
|
etree.SubElement(billTo, "address").text = (partner.street or '' + (partner.street2 if partner.street2 else '')) or None
|
||||||
etree.SubElement(billTo, "city").text = partner.city
|
etree.SubElement(billTo, "city").text = partner.city
|
||||||
etree.SubElement(billTo, "state").text = partner.state_id.name or None
|
etree.SubElement(billTo, "state").text = partner.state_id.name or None
|
||||||
etree.SubElement(billTo, "zip").text = partner.zip
|
etree.SubElement(billTo, "zip").text = partner.zip
|
||||||
|
|||||||
@@ -913,7 +913,7 @@ class ProcurementOrder(models.Model):
|
|||||||
if self.purchase_line_id:
|
if self.purchase_line_id:
|
||||||
if not self.move_ids:
|
if not self.move_ids:
|
||||||
return False
|
return False
|
||||||
return all(move.state == 'done' for move in self.move_ids)
|
return all(move.state in ('done', 'cancel') for move in self.move_ids) and any(move.state == 'done' for move in self.move_ids)
|
||||||
return super(ProcurementOrder, self)._check()
|
return super(ProcurementOrder, self)._check()
|
||||||
|
|
||||||
def _get_purchase_schedule_date(self):
|
def _get_purchase_schedule_date(self):
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ var RedirectWarningHandler = Dialog.extend(ExceptionHandler, {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
core.crash_registry.add('openerp.exceptions.RedirectWarning', RedirectWarningHandler);
|
core.crash_registry.add('odoo.exceptions.RedirectWarning', RedirectWarningHandler);
|
||||||
|
|
||||||
return CrashManager;
|
return CrashManager;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Belgium, 19/07/2017
|
||||||
|
|
||||||
|
I hereby agree to the terms of the Odoo Individual Contributor License
|
||||||
|
Agreement v1.0.
|
||||||
|
|
||||||
|
I declare that I am authorized and able to make this agreement and sign this
|
||||||
|
declaration.
|
||||||
|
|
||||||
|
Signed,
|
||||||
|
|
||||||
|
Vincent Adriaensen vincentadriaensen@users.noreply.github.com https://github.com/vincentadriaensen
|
||||||
@@ -21,12 +21,12 @@ class test_model(models.Model):
|
|||||||
(4, "réponse <D>"),
|
(4, "réponse <D>"),
|
||||||
])
|
])
|
||||||
selection_str = fields.Selection([
|
selection_str = fields.Selection([
|
||||||
('A', "Qu'il n'est pas arrivé à Toronto"),
|
('A', u"Qu'il n'est pas arrivé à Toronto"),
|
||||||
('B', "Qu'il était supposé arriver à Toronto"),
|
('B', u"Qu'il était supposé arriver à Toronto"),
|
||||||
('C', "Qu'est-ce qu'il fout ce maudit pancake, tabernacle ?"),
|
('C', u"Qu'est-ce qu'il fout ce maudit pancake, tabernacle ?"),
|
||||||
('D', "La réponse D"),
|
('D', u"La réponse D"),
|
||||||
], string="Lorsqu'un pancake prend l'avion à destination de Toronto et "
|
], string=u"Lorsqu'un pancake prend l'avion à destination de Toronto et "
|
||||||
"qu'il fait une escale technique à St Claude, on dit:")
|
u"qu'il fait une escale technique à St Claude, on dit:")
|
||||||
html = fields.Html()
|
html = fields.Html()
|
||||||
text = fields.Text()
|
text = fields.Text()
|
||||||
|
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ def init_logger():
|
|||||||
_logger_init = True
|
_logger_init = True
|
||||||
|
|
||||||
logging.addLevelName(25, "INFO")
|
logging.addLevelName(25, "INFO")
|
||||||
|
logging.captureWarnings(True)
|
||||||
|
|
||||||
from tools.translate import resetlocale
|
from tools.translate import resetlocale
|
||||||
resetlocale()
|
resetlocale()
|
||||||
|
|||||||
@@ -74,12 +74,11 @@ class BaseWSGIServerNoBind(LoggingBaseWSGIServerMixIn, werkzeug.serving.BaseWSGI
|
|||||||
use this class, sets the socket and calls the process_request() manually
|
use this class, sets the socket and calls the process_request() manually
|
||||||
"""
|
"""
|
||||||
def __init__(self, app):
|
def __init__(self, app):
|
||||||
werkzeug.serving.BaseWSGIServer.__init__(self, "1", "1", app)
|
werkzeug.serving.BaseWSGIServer.__init__(self, "127.0.0.1", 0, app)
|
||||||
def server_bind(self):
|
# Directly close the socket. It will be replaced by WorkerHTTP when processing requests
|
||||||
# we dont bind beause we use the listen socket of PreforkServer#socket
|
|
||||||
# instead we close the socket
|
|
||||||
if self.socket:
|
if self.socket:
|
||||||
self.socket.close()
|
self.socket.close()
|
||||||
|
|
||||||
def server_activate(self):
|
def server_activate(self):
|
||||||
# dont listen as we use PreforkServer#socket
|
# dont listen as we use PreforkServer#socket
|
||||||
pass
|
pass
|
||||||
@@ -581,6 +580,7 @@ class PreforkServer(CommonServer):
|
|||||||
|
|
||||||
if self.address:
|
if self.address:
|
||||||
# listen to socket
|
# listen to socket
|
||||||
|
_logger.info('HTTP service (werkzeug) running on %s:%s', *self.address)
|
||||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
self.socket.setblocking(0)
|
self.socket.setblocking(0)
|
||||||
|
|||||||
Reference in New Issue
Block a user