Skip to content

Commit 96d9345

Browse files
Fix merge conflict in http_controller.py
1 parent 679166f commit 96d9345

File tree

1 file changed

+0
-94
lines changed

1 file changed

+0
-94
lines changed

records_management/controllers/http_controller.py

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,10 @@
88
INVENTORY_PAGE_LIMIT = 100 # Limit for scalability
99

1010
class MyController(http.Controller):
11-
<<<<<<< HEAD
1211
"""
1312
Controller for managing inventory-related HTTP requests.
1413
"""
1514

16-
def _get_partner_inventory(self, partner):
17-
"""
18-
Fetch inventory items associated with the given partner.
19-
Args:
20-
partner: res.partner record.
21-
Returns:
22-
Recordset of stock.quant matching the criteria.
23-
"""
24-
serials = http.request.env['stock.production.lot'].search([(CUSTOMER_FIELD, '=', partner.id)])
25-
return http.request.env['stock.quant'].search([
26-
('lot_id', 'in', serials.ids),
27-
('location_id.usage', '=', INTERNAL_USAGE)
28-
])
29-
=======
3015
def _get_current_user(self):
3116
"""
3217
Helper to get the current Odoo user.
@@ -66,12 +51,6 @@ def _get_partner_inventory(self, partner, limit=INVENTORY_PAGE_LIMIT):
6651
limit (int): Max number of records to return.
6752
Returns:
6853
stock.quant recordset.
69-
Example:
70-
>>> self._get_partner_inventory(partner)
71-
stock.quant(1, 2, 3)
72-
Edge Cases:
73-
- Partner has no inventory: returns empty recordset.
74-
- Large inventory: returns only up to 'limit' records.
7554
"""
7655
try:
7756
serials = http.request.env['stock.production.lot'].search([(CUSTOMER_FIELD, '=', partner.id)])
@@ -95,13 +74,6 @@ def _parse_item_ids(self, form):
9574
form: werkzeug.form object.
9675
Returns:
9776
List of item_ids as integers, or None if parsing fails.
98-
Example:
99-
>>> self._parse_item_ids(form)
100-
[1, 2, 3]
101-
Edge Cases:
102-
- No item_ids: returns None.
103-
- Non-integer values: returns None.
104-
- Duplicates: returns unique integers.
10577
"""
10678
item_ids = form.getlist('item_ids')
10779
if not item_ids:
@@ -121,41 +93,10 @@ def _parse_item_ids(self, form):
12193
except Exception as e:
12294
_logger.error("Error parsing item_ids: %s. Data: %s", e, item_ids)
12395
return None
124-
>>>>>>> 46620db (Update: latest changes)
125-
126-
def _parse_item_ids(self, form):
127-
"""
128-
Helper to safely parse item_ids from form data.
129-
Args:
130-
form: werkzeug.form object.
131-
Returns:
132-
List of item_ids as integers, or None if parsing fails.
133-
"""
134-
try:
135-
return [int(id) for id in form.getlist('item_ids')]
136-
except (ValueError, TypeError):
137-
return None
13896

13997
@http.route('/my/inventory/request_pickup', type='http', auth='user', methods=['POST'], csrf=True)
14098
def request_pickup(self, **kw):
14199
"""
142-
<<<<<<< HEAD
143-
Handle inventory pickup requests for logged-in users.
144-
"""
145-
user = http.request.env.user
146-
partner = user.partner_id
147-
_logger.info('Inventory accessed by partner ID %s', partner.id)
148-
149-
item_ids = self._parse_item_ids(http.request.httprequest.form)
150-
if not item_ids:
151-
_logger.warning("User ID: %s provided invalid item_ids: %s", user.id, http.request.httprequest.form.getlist('item_ids'))
152-
# Redirect with error and user friendly message
153-
return http.request.redirect('/my/inventory?error=invalid_item_ids&message=Please+provide+valid+item+IDs.')
154-
155-
_logger.info('Pickup requested for items %s by partner ID %s', item_ids, partner.id)
156-
# ...existing pickup processing code should be placed here...
157-
return http.request.redirect('/my/inventory?success=pickup_requested')
158-
=======
159100
Handle pickup requests for inventory items.
160101
Enhanced logging, error handling, and user feedback.
161102
"""
@@ -164,49 +105,20 @@ def request_pickup(self, **kw):
164105
_logger.info('Pickup request initiated by user %s (ID: %s), partner %s', user.login, user.id, partner.id)
165106
item_ids = self._parse_item_ids(http.request.httprequest.form)
166107
if item_ids is None:
167-
error_msg = (
168-
"Invalid item selection. Please select valid inventory items. "
169-
"If the problem persists, contact support."
170-
)
171108
_logger.warning("User %s (ID: %s) provided invalid item_ids: %s", user.login, user.id, http.request.httprequest.form.getlist('item_ids'))
172109
return http.request.redirect('/my/inventory?error=invalid_item_ids')
173110
try:
174111
# ...existing code for processing pickup...
175112
_logger.info('Pickup requested for items %s by partner %s', item_ids, partner.id)
176113
# On success:
177-
success_msg = "Pickup request submitted successfully for selected items."
178114
return http.request.redirect('/my/inventory?success=pickup_requested')
179115
except Exception as e:
180116
_logger.error("Error processing pickup request for user %s: %s", user.login, e)
181-
error_msg = (
182-
"An error occurred while processing your pickup request. "
183-
"Please try again later or contact support."
184-
)
185117
return http.request.redirect('/my/inventory?error=pickup_failed')
186-
>>>>>>> 46620db (Update: latest changes)
187118

188119
@http.route('/my/inventory', type='http', auth='user', website=True, methods=['GET'], csrf=True)
189120
def my_inventory(self, **kw):
190121
"""
191-
<<<<<<< HEAD
192-
Display inventory relevant to the logged-in user.
193-
"""
194-
user = http.request.env.user
195-
partner = user.partner_id
196-
quants = self._get_partner_inventory(partner)
197-
198-
# Show error message from query parameters if present
199-
error = http.request.params.get('error')
200-
message = http.request.params.get('message', '')
201-
success = http.request.params.get('success')
202-
if error:
203-
message = message or 'There was a problem with your request.'
204-
elif not quants:
205-
message = 'No inventory items found. Please contact support if this issue persists.'
206-
elif success:
207-
message = 'Your pickup request has been submitted.'
208-
209-
=======
210122
Render the inventory page for the current user.
211123
Enhanced with pagination, user-friendly messages, and tooltips.
212124
"""
@@ -224,23 +136,17 @@ def my_inventory(self, **kw):
224136
if not quants:
225137
message_ctx['message'] = 'No inventory items found. If you believe this is an error, please contact support.'
226138
message_ctx['message_type'] = 'info'
227-
# Add tooltips/explanations for inventory actions
228139
inventory_tooltips = {
229140
'pickup': 'Request pickup for selected inventory items. Only available for items in internal locations.'
230141
}
231-
>>>>>>> 46620db (Update: latest changes)
232142
return http.request.render(
233143
'records_management.inventory_template',
234144
{
235145
'quants': quants,
236-
<<<<<<< HEAD
237-
'message': message
238-
=======
239146
'message': message_ctx['message'],
240147
'message_type': message_ctx['message_type'],
241148
'tooltips': inventory_tooltips,
242149
'page_limit': INVENTORY_PAGE_LIMIT,
243-
>>>>>>> 46620db (Update: latest changes)
244150
}
245151
)
246152

0 commit comments

Comments
 (0)