5
5
import logging
6
6
import odoo
7
7
import threading
8
+ import codecs
8
9
from contextlib import contextmanager
9
10
from itertools import groupby
10
11
from odoo import _ , api , exceptions , fields , models
11
-
12
12
from ..pdf_utils import assemble_pdf
13
13
14
14
_logger = logging .getLogger (__name__ )
@@ -21,13 +21,13 @@ class DeliveryCarrierLabelGenerate(models.TransientModel):
21
21
@api .multi
22
22
def _get_batch_ids (self ):
23
23
res = False
24
- if (self .env .context .get ('active_model' ) == 'stock.batch. picking' and
24
+ if (self .env .context .get ('active_model' ) == 'stock.picking.batch ' and
25
25
self .env .context .get ('active_ids' )):
26
26
res = self .env .context ['active_ids' ]
27
27
return res
28
28
29
29
batch_ids = fields .Many2many (
30
- 'stock.batch. picking' ,
30
+ 'stock.picking.batch ' ,
31
31
string = 'Picking Batch' ,
32
32
default = _get_batch_ids )
33
33
generate_new_labels = fields .Boolean (
@@ -86,9 +86,7 @@ def _do_generate_labels(self, group):
86
86
# generate the label of the pack
87
87
package_ids = [pack .id ] if pack else None
88
88
try :
89
- picking .with_env (new_env ).generate_labels (
90
- package_ids = package_ids
91
- )
89
+ picking .with_env (new_env ).action_generate_carrier_label ()
92
90
except Exception as e :
93
91
# add information on picking and pack in the exception
94
92
picking_name = _ ('Picking: %s' ) % picking .name
@@ -220,7 +218,7 @@ def action_generate_labels(self):
220
218
to_generate = self .batch_ids
221
219
if not self .generate_new_labels :
222
220
already_generated_ids = self .env ['ir.attachment' ].search (
223
- [('res_model' , '=' , 'stock.batch. picking' ),
221
+ [('res_model' , '=' , 'stock.picking.batch ' ),
224
222
('res_id' , 'in' , self .batch_ids .ids )]
225
223
).mapped ('res_id' )
226
224
to_generate = to_generate .filtered (
@@ -229,12 +227,12 @@ def action_generate_labels(self):
229
227
230
228
for batch in to_generate :
231
229
labels = self ._get_all_pdf (batch )
232
- labels = (label .decode ('base64' ) for label in labels if label )
230
+ labels = (codecs .decode (label , 'base64' ) for label in labels if label )
233
231
filename = batch .name + '.pdf'
234
232
data = {
235
233
'name' : filename ,
236
234
'res_id' : batch .id ,
237
- 'res_model' : 'stock.batch. picking' ,
235
+ 'res_model' : 'stock.picking.batch ' ,
238
236
'datas' : base64 .b64encode (assemble_pdf (labels )),
239
237
'datas_fname' : filename ,
240
238
}
0 commit comments