fix flakes8

This commit is contained in:
Yannick Vaucher
2014-07-04 16:24:36 +02:00
parent 5ee3dc7ae0
commit 95cce84d0c
14 changed files with 154 additions and 116 deletions

View File

@@ -30,12 +30,11 @@ import cups
from openerp.osv import orm, fields from openerp.osv import orm, fields
#
# Reports
#
class report_xml(orm.Model): class report_xml(orm.Model):
"""
Reports
"""
def set_print_options(self, cr, uid, report_id, format, context=None): def set_print_options(self, cr, uid, report_id, format, context=None):
""" """
@@ -79,7 +78,10 @@ class report_xml(orm.Model):
method=True, method=True,
), ),
'printing_printer_id': fields.many2one('printing.printer', 'Printer'), 'printing_printer_id': fields.many2one('printing.printer', 'Printer'),
'printing_action_ids': fields.one2many('printing.report.xml.action', 'report_id', 'Actions', help='This field allows configuring action and printer on a per user basis'), 'printing_action_ids': fields.one2many(
'printing.report.xml.action', 'report_id', 'Actions',
help='This field allows configuring action and printer on a per '
'user basis'),
} }
def behaviour(self, cr, uid, ids, context=None): def behaviour(self, cr, uid, ids, context=None):
@@ -105,13 +107,15 @@ class report_xml(orm.Model):
printer = default_printer printer = default_printer
# Retrieve report default values # Retrieve report default values
if report.property_printing_action and report.property_printing_action.type != 'user_default': if (report.property_printing_action
and report.property_printing_action.type != 'user_default'):
action = report.property_printing_action.type action = report.property_printing_action.type
if report.printing_printer_id: if report.printing_printer_id:
printer = report.printing_printer_id printer = report.printing_printer_id
# Retrieve report-user specific values # Retrieve report-user specific values
act_ids = printing_act_obj.search(cr, uid, act_ids = printing_act_obj.search(
cr, uid,
[('report_id', '=', report.id), [('report_id', '=', report.id),
('user_id', '=', uid), ('user_id', '=', uid),
('action', '!=', 'user_default')], context=context) ('action', '!=', 'user_default')], context=context)

View File

@@ -23,7 +23,6 @@
# #
############################################################################## ##############################################################################
import time import time
import base64
import cups import cups
from threading import Thread from threading import Thread
@@ -32,25 +31,53 @@ from threading import Lock
from openerp import pooler from openerp import pooler
from openerp.osv import orm, fields from openerp.osv import orm, fields
from openerp.tools.translate import _ from openerp.tools.translate import _
from openerp.addons.base_calendar import base_calendar
#
# Printers
#
class printing_printer(orm.Model): class printing_printer(orm.Model):
"""
Printers
"""
_name = "printing.printer" _name = "printing.printer"
_description = "Printer" _description = "Printer"
_columns = { _columns = {
'name' : fields.char('Name',size=64,required=True,select="1"), 'name': fields.char(
'system_name': fields.char('System Name',size=64,required=True,select="1"), 'Name',
'default':fields.boolean('Default Printer', readonly=True), size=64,
'status': fields.selection([('unavailable','Unavailable'),('printing','Printing'),('unknown','Unknown'),('available','Available'),('error','Error'),('server-error','Server Error')], 'Status', required=True, readonly=True), required=True,
'status_message': fields.char('Status Message', size=500, readonly=True), select="1"),
'model': fields.char('Model', size=500, readonly=True), 'system_name': fields.char(
'location': fields.char('Location', size=500, readonly=True), 'System Name',
'uri': fields.char('URI', size=500, readonly=True), size=64,
required=True,
select="1"),
'default': fields.boolean(
'Default Printer',
readonly=True),
'status': fields.selection(
[('unavailable', 'Unavailable'),
('printing', 'Printing'),
('unknown', 'Unknown'),
('available', 'Available'),
('error', 'Error'),
('server-error', 'Server Error')],
'Status', required=True, readonly=True),
'status_message': fields.char(
'Status Message',
size=500,
readonly=True),
'model': fields.char(
'Model',
size=500,
readonly=True),
'location': fields.char(
'Location',
size=500,
readonly=True),
'uri': fields.char(
'URI',
size=500,
readonly=True),
} }
_order = "name" _order = "name"
@@ -117,7 +144,6 @@ class printing_printer(orm.Model):
self.updating = False self.updating = False
self.last_update = time.time() self.last_update = time.time()
def start_printer_update(self, cr, uid, context): def start_printer_update(self, cr, uid, context):
self.lock.acquire() self.lock.acquire()
if self.updating: if self.updating:
@@ -149,13 +175,17 @@ class printing_printer(orm.Model):
break break
return True return True
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
self.update(cr, uid, context) self.update(cr, uid, context)
return super(printing_printer,self).search(cr, uid, args, offset, limit, order, context, count) return super(printing_printer, self
).search(cr, uid, args, offset,
limit, order, context, count)
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'): def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
self.update(cr, uid, context) self.update(cr, uid, context)
return super(printing_printer,self).read(cr, uid, ids, fields, context, load) return super(printing_printer, self
).read(cr, uid, ids, fields, context, load)
def browse(self, cr, uid, ids, context=None): def browse(self, cr, uid, ids, context=None):
self.update(cr, uid, context) self.update(cr, uid, context)
@@ -187,6 +217,7 @@ def _available_action_types(self, cr, uid, context=None):
('user_default', _("Use user's defaults")), ('user_default', _("Use user's defaults")),
] ]
class printing_action(orm.Model): class printing_action(orm.Model):
_name = 'printing.action' _name = 'printing.action'
_description = 'Print Job Action' _description = 'Print Job Action'
@@ -195,5 +226,3 @@ class printing_action(orm.Model):
'name': fields.char('Name', size=256, required=True), 'name': fields.char('Name', size=256, required=True),
'type': fields.selection(_available_action_types, 'Type', required=True), 'type': fields.selection(_available_action_types, 'Type', required=True),
} }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@@ -27,6 +27,7 @@ import base64
from openerp import pooler from openerp import pooler
from openerp.addons.base_calendar import base_calendar from openerp.addons.base_calendar import base_calendar
class virtual_report_spool(base_calendar.virtual_report_spool): class virtual_report_spool(base_calendar.virtual_report_spool):
def exp_report(self, db, uid, object, ids, datas=None, context=None): def exp_report(self, db, uid, object, ids, datas=None, context=None):
@@ -41,22 +42,26 @@ class virtual_report_spool(base_calendar.virtual_report_spool):
pool = pooler.get_pool(cr.dbname) pool = pooler.get_pool(cr.dbname)
# First of all load report defaults: name, action and printer # First of all load report defaults: name, action and printer
report_obj = pool.get('ir.actions.report.xml') report_obj = pool.get('ir.actions.report.xml')
report = report_obj.search(cr,uid,[('report_name','=',self._reports[report_id]['report_name'])]) report = report_obj.search(
cr, uid, [('report_name', '=', self._reports[report_id]['report_name'])])
if report: if report:
report = report_obj.browse(cr, uid, report[0]) report = report_obj.browse(cr, uid, report[0])
name = report.name
data = report.behaviour()[report.id] data = report.behaviour()[report.id]
action = data['action'] action = data['action']
printer = data['printer'] printer = data['printer']
if action != 'client': if action != 'client':
if (self._reports and self._reports.get(report_id, False) and self._reports[report_id].get('result', False) if (self._reports and self._reports.get(report_id, False)
and self._reports[report_id].get('result', False)
and self._reports[report_id].get('format', False)): and self._reports[report_id].get('format', False)):
report_obj.print_direct(cr, uid, report.id, base64.encodestring(self._reports[report_id]['result']), report_obj.print_direct(
cr, uid, report.id, base64.encodestring(self._reports[report_id]['result']),
self._reports[report_id]['format'], printer) self._reports[report_id]['format'], printer)
# XXX "Warning" removed as it breaks the workflow # XXX "Warning" removed as it breaks the workflow
# it would be interesting to have a dialog box to confirm if we really want to print # it would be interesting to have a dialog box to confirm if we really want to print
# in this case it must be with a by pass parameter to allow massive impression # in this case it must be with a by pass parameter to allow massive impression
#raise osv.except_osv(_('Printing...'), _('Document sent to printer %s') % (printer,)) # raise osv.except_osv(
# _('Printing...'),
# _('Document sent to printer %s') % (printer,))
except: except:
cr.rollback() cr.rollback()

View File

@@ -26,17 +26,19 @@ from openerp.osv import orm, fields
from printing import _available_action_types from printing import _available_action_types
#
# Users
#
class res_users(orm.Model): class res_users(orm.Model):
"""
Users
"""
_name = "res.users" _name = "res.users"
_inherit = "res.users" _inherit = "res.users"
def _user_available_action_types(self, cr, uid, context=None): def _user_available_action_types(self, cr, uid, context=None):
if context is None: if context is None:
context = {} context = {}
return [x for x in _available_action_types(self, cr, uid, context) if x[0] != 'user_default'] return [x for x in _available_action_types(self, cr, uid, context)
if x[0] != 'user_default']
_columns = { _columns = {
'printing_action': fields.selection(_user_available_action_types, 'Printing Action'), 'printing_action': fields.selection(_user_available_action_types, 'Printing Action'),

View File

@@ -37,14 +37,16 @@ class printing_printer_update_wizard(orm.TransientModel):
def action_ok(self, cr, uid, ids, context=None): def action_ok(self, cr, uid, ids, context=None):
# Update Printers # Update Printers
printer_obj = self.pool['printing.printer']
try: try:
connection = cups.Connection() connection = cups.Connection()
printers = connection.getPrinters() printers = connection.getPrinters()
except: except:
return {} return {}
ids = self.pool.get('printing.printer').search(cr, uid, [('system_name','in',printers.keys())], context=context) ids = printer_obj.search(
for printer in self.pool.get('printing.printer').browse(cr, uid, ids, context=context): cr, uid, [('system_name', 'in', printers.keys())], context=context)
for printer in printer_obj.browse(cr, uid, ids, context=context):
del printers[printer.system_name] del printers[printer.system_name]
for name in printers: for name in printers:

View File

@@ -23,4 +23,3 @@ import ir_attachment
import pingen import pingen
import pingen_document import pingen_document
import res_company import res_company

View File

@@ -225,4 +225,3 @@ class Pingen(object):
:param dict post_infos: post infos returned by `post_infos` :param dict post_infos: post infos returned by `post_infos`
""" """
return post_infos['status'] == 200 return post_infos['status'] == 200

View File

@@ -116,13 +116,13 @@ class pingen_document(orm.Model):
document.pingen_send, document.pingen_send,
document.pingen_speed, document.pingen_speed,
document.pingen_color) document.pingen_color)
except ConnectionError as e: except ConnectionError:
_logger.exception( _logger.exception(
'Connection Error when pushing Pingen Document %s to %s.' % 'Connection Error when pushing Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
raise raise
except APIError as e: except APIError:
_logger.error( _logger.error(
'API Error when pushing Pingen Document %s to %s.' % 'API Error when pushing Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
@@ -263,11 +263,11 @@ class pingen_document(orm.Model):
document.pingen_id, document.pingen_id,
document.pingen_speed, document.pingen_speed,
document.pingen_color) document.pingen_color)
except ConnectionError as e: except ConnectionError:
_logger.exception('Connection Error when asking for sending Pingen Document %s to %s.' % _logger.exception('Connection Error when asking for sending Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
raise raise
except APIError as e: except APIError:
_logger.exception('API Error when asking for sending Pingen Document %s to %s.' % _logger.exception('API Error when asking for sending Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
raise raise
@@ -323,13 +323,13 @@ class pingen_document(orm.Model):
try: try:
post_infos = pingen.post_infos(document.post_id) post_infos = pingen.post_infos(document.post_id)
except ConnectionError as e: except ConnectionError:
_logger.exception( _logger.exception(
'Connection Error when asking for ' 'Connection Error when asking for '
'sending Pingen Document %s to %s.' % 'sending Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
raise raise
except APIError as e: except APIError:
_logger.exception( _logger.exception(
'API Error when asking for sending Pingen Document %s to %s.' % 'API Error when asking for sending Pingen Document %s to %s.' %
(document.id, pingen.url)) (document.id, pingen.url))
@@ -423,4 +423,3 @@ class pingen_document(orm.Model):
_('Error'), _('Error'),
_('Unexcepted Error when updating the status of Document %s') % document.name) _('Unexcepted Error when updating the status of Document %s') % document.name)
return True return True

View File

@@ -23,6 +23,7 @@ from openerp.osv import orm, fields
from openerp.osv.orm import browse_record from openerp.osv.orm import browse_record
from .pingen import Pingen from .pingen import Pingen
class res_company(orm.Model): class res_company(orm.Model):
_inherit = 'res.company' _inherit = 'res.company'
@@ -39,4 +40,3 @@ class res_company(orm.Model):
if not isinstance(company, browse_record): if not isinstance(company, browse_record):
company = self.browse(cr, uid, company, context=context) company = self.browse(cr, uid, company, context=context)
return Pingen(company.pingen_token, staging=company.pingen_staging) return Pingen(company.pingen_token, staging=company.pingen_staging)

View File

@@ -18,4 +18,3 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################## ##############################################################################