From b849416890f5eb3bb41cf9290917461ee651d8b5 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Sat, 13 Jul 2019 08:04:34 -0700 Subject: [PATCH 01/13] FIX `sale_planner` accidental recursion when creating a FakePartner from a dictionary withou 'date_localization' --- sale_planner/wizard/order_planner.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 75c81fca..54b654fa 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -50,13 +50,14 @@ class FakePartner(): self.partner_latitude = 0.0 self.partner_longitude = 0.0 self.is_company = False + self._date_localization = kwargs.pop('date_localization', False) for attr, value in kwargs.items(): setattr(self, attr, value) @property def date_localization(self): - if not hasattr(self, 'date_localization') and self.date_localization: - self.date_localization = 'TODAY!' + if not self._date_localization: + self._date_localization = 'TODAY!' # The fast way. if SearchEngine and self.zip: with SearchEngine() as search: @@ -64,7 +65,7 @@ class FakePartner(): if zipcode and zipcode.lat: self.partner_latitude = zipcode.lat self.partner_longitude = zipcode.lng - return self.date_localization + return self._date_localization # The slow way. result = geo_find(geo_query_address( @@ -76,7 +77,7 @@ class FakePartner(): self.partner_latitude = result[0] self.partner_longitude = result[1] - return self.date_localization + return self._date_localization class FakeOrderLine(): From c91c53d59ec0a9a4b0bb8db37156bd7214bbbc62 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 15 Jul 2019 08:17:42 -0700 Subject: [PATCH 02/13] FIX `sale_planner` FakeSaleOrder project_id => analytic_accout_id --- sale_planner/wizard/order_planner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 54b654fa..0df5a236 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -133,7 +133,7 @@ class FakeSaleOrder(): self.id = 0 self.name = 'Quote' self.team_id = None - self.project_id = None + self.analytic_account_id = None self.amount_total = 0.0 for attr, value in kwargs.items(): setattr(self, attr, value) From d60ab09e6e0f7fe3b88979c4c2a271acd5053cca Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 15 Jul 2019 09:47:51 -0700 Subject: [PATCH 03/13] IMP `sale_planner` Fake objects now return False for any attribute they don't implement. --- sale_planner/wizard/order_planner.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 0df5a236..50a2fca6 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -79,6 +79,9 @@ class FakePartner(): return self._date_localization + def __getattr__(self, item): + return False + class FakeOrderLine(): def __init__(self, **kwargs): @@ -109,6 +112,9 @@ class FakeOrderLine(): """ return qty + def __getattr__(self, item): + return False + class FakeSaleOrder(): """ @@ -144,6 +150,9 @@ class FakeSaleOrder(): """ yield self + def __getattr__(self, item): + return False + def distance(lat_1, lon_1, lat_2, lon_2): R = 6373.0 From 4e4fd80006e8462d3214f45de050de16e1026380 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 15 Jul 2019 12:29:38 -0700 Subject: [PATCH 04/13] IMP `order_planner` allow subscription access to Fakes --- sale_planner/wizard/order_planner.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 50a2fca6..0aa907a3 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -82,6 +82,11 @@ class FakePartner(): def __getattr__(self, item): return False + def __getitem__(self, item): + if item == '__last_update': + return str(datetime.now()) + return getattr(self, item) + class FakeOrderLine(): def __init__(self, **kwargs): @@ -115,6 +120,11 @@ class FakeOrderLine(): def __getattr__(self, item): return False + def __getitem__(self, item): + if item == '__last_update': + return str(datetime.now()) + return getattr(self, item) + class FakeSaleOrder(): """ @@ -153,6 +163,11 @@ class FakeSaleOrder(): def __getattr__(self, item): return False + def __getitem__(self, item): + if item == '__last_update': + return str(datetime.now()) + return getattr(self, item) + def distance(lat_1, lon_1, lat_2, lon_2): R = 6373.0 From decf665a692c20105b745435fb5828d3edae1a43 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 16 Jul 2019 15:07:41 -0700 Subject: [PATCH 05/13] IMP `sale_planner` FakePartner now provides a FakePartner parent_id --- sale_planner/wizard/order_planner.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 0aa907a3..04565c40 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -51,6 +51,8 @@ class FakePartner(): self.partner_longitude = 0.0 self.is_company = False self._date_localization = kwargs.pop('date_localization', False) + if not kwargs.pop('PARENT', False): + self.parent_id = FakePartner(PARENT=True) for attr, value in kwargs.items(): setattr(self, attr, value) From aaef8b8f228a4121fdc7f405fe3eebe9a40fa2a5 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Tue, 16 Jul 2019 15:57:05 -0700 Subject: [PATCH 06/13] IMP `auth_admin` Make it easier to select the long url. --- auth_admin/wizard/portal_wizard_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auth_admin/wizard/portal_wizard_views.xml b/auth_admin/wizard/portal_wizard_views.xml index 78e37b21..ef9b7992 100755 --- a/auth_admin/wizard/portal_wizard_views.xml +++ b/auth_admin/wizard/portal_wizard_views.xml @@ -7,7 +7,7 @@ - + +

+ +
+ +

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+

You can use Markdown for formatting.

+