diff --git a/.gitmodules b/.gitmodules index ada81ce9..f2cdff18 100644 --- a/.gitmodules +++ b/.gitmodules @@ -27,3 +27,7 @@ [submodule "external/hibou-oca/stock-logistics-warehouse"] path = external/hibou-oca/stock-logistics-warehouse url = https://github.com/hibou-io/oca-stock-logistics-warehouse.git +[submodule "external/hibou-oca/social"] + path = external/hibou-oca/social + url = https://github.com/hibou-io/oca-social + diff --git a/external/hibou-oca/social b/external/hibou-oca/social new file mode 160000 index 00000000..eeedcbd4 --- /dev/null +++ b/external/hibou-oca/social @@ -0,0 +1 @@ +Subproject commit eeedcbd41dc960ffdf19e8f7924ecb5b7aa9d84d diff --git a/mass_mailing_list_dynamic b/mass_mailing_list_dynamic new file mode 120000 index 00000000..2453ce25 --- /dev/null +++ b/mass_mailing_list_dynamic @@ -0,0 +1 @@ +./external/hibou-oca/social/mass_mailing_list_dynamic \ No newline at end of file diff --git a/mass_mailing_partner b/mass_mailing_partner new file mode 120000 index 00000000..4a924242 --- /dev/null +++ b/mass_mailing_partner @@ -0,0 +1 @@ +./external/hibou-oca/social/mass_mailing_partner \ No newline at end of file diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index d7274e88..179f8617 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -725,7 +725,7 @@ class SaleOrderMakePlan(models.TransientModel): return max_requested_date def _get_max_transit_days(self, sub_options): - return max(wh_option.get('transit_days', 0) for wh_option in sub_options.values()) + return max(wh_option.get('transit_days', 0) or 0 for wh_option in sub_options.values()) def _generate_shipping_carrier_option(self, base_option, order_fake, carrier): # some carriers look at the order carrier_id @@ -789,11 +789,15 @@ class SaleOrderPlanningOption(models.TransientModel): _description = 'Order Planning Option' def create(self, values): + def datetime_converter(o): + if isinstance(o, datetime): + return str(o) + if 'sub_options' in values and not isinstance(values['sub_options'], str): for wh_id, option in values['sub_options'].items(): if option.get('date_planned'): option['date_planned'] = str(option['date_planned']) - values['sub_options'] = dumps(values['sub_options']) + values['sub_options'] = dumps(values['sub_options'], default=datetime_converter) return super(SaleOrderPlanningOption, self).create(values) @api.multi @@ -808,12 +812,12 @@ class SaleOrderPlanningOption(models.TransientModel): line = '' for wh_id, wh_option in sub_options.items(): - product_skus = wh_option.get('product_skus', []) - date_planned = wh_option.get('date_planned') + product_skus = (str(s) for s in wh_option.get('product_skus', [])) + date_planned = wh_option.get('date_planned') or '' product_skus = ', '.join(product_skus) - requested_date = wh_option.get('requested_date', '') - shipping_price = float(wh_option.get('shipping_price', 0.0)) - transit_days = int(wh_option.get('transit_days', 0)) + requested_date = wh_option.get('requested_date', '') or '' + shipping_price = float(wh_option.get('shipping_price', 0.0) or 0) + transit_days = int(wh_option.get('transit_days', 0) or 0) line += """WH %d :: %s Date Planned: %s