diff --git a/addons/dine360_order_channels/static/src/js/channel_panel.js b/addons/dine360_order_channels/static/src/js/channel_panel.js
index b1bae81..e470f5a 100644
--- a/addons/dine360_order_channels/static/src/js/channel_panel.js
+++ b/addons/dine360_order_channels/static/src/js/channel_panel.js
@@ -38,12 +38,17 @@ export class ChannelPanel extends Component {
this.state = useState({
showDelivery: false,
+ showDetails: false, // For manual fields toggle
searchQuery: '',
searchResults: [],
searching: false,
});
}
+ toggleDetails() {
+ this.state.showDetails = !this.state.showDetails;
+ }
+
get currentOrder() {
return this.pos.get_order();
}
diff --git a/addons/dine360_order_channels/static/src/xml/channel_panel.xml b/addons/dine360_order_channels/static/src/xml/channel_panel.xml
index a20e279..823d41e 100644
--- a/addons/dine360_order_channels/static/src/xml/channel_panel.xml
+++ b/addons/dine360_order_channels/static/src/xml/channel_panel.xml
@@ -59,20 +59,28 @@
-
-
🚚 Delivery Address
+
+
+
Delivery Address
+
+
-
+
-
Searching...
+ class="address-dropdown position-absolute bg-white border rounded shadow w-100 mt-1">
-
—
@@ -83,29 +91,38 @@
-
-
-
diff --git a/addons/dine360_uber/models/pos_order.py b/addons/dine360_uber/models/pos_order.py
index bfd48fe..69b6a64 100644
--- a/addons/dine360_uber/models/pos_order.py
+++ b/addons/dine360_uber/models/pos_order.py
@@ -158,8 +158,21 @@ class PosOrder(models.Model):
order._add_uber_delivery_fee(delivery_fee)
except requests.exceptions.HTTPError as e:
- error_msg = f"Uber API Error {e.response.status_code}: {e.response.text}"
- raise UserError(_(error_msg))
+ # Try to parse the error message if it's JSON
+ try:
+ err_data = e.response.json()
+ err_code = err_data.get('code', 'unknown_error')
+ err_msg = err_data.get('message', 'An error occurred with Uber API.')
+
+ if err_code == 'address_undeliverable':
+ # Special handling for radius errors (most common issue)
+ details = err_data.get('metadata', {}).get('details', '')
+ raise UserError(_("Address Undeliverable: The drop-off location is outside Uber's delivery radius. \n\nDetails: %s") % details)
+
+ raise UserError(_("Uber API Error (%s): %s") % (err_code, err_msg))
+ except (ValueError, AttributeError):
+ # Fallback to default error text if not JSON
+ raise UserError(_("Uber API Error %s: %s") % (e.response.status_code, e.response.text))
except Exception as e:
raise UserError(_("Failed to request delivery: %s") % str(e))