res["children"] = kids
return res
+
+def content_disposition(filename, req):
+ filename = filename.encode('utf8')
+ escaped = urllib2.quote(filename)
+ browser = req.httprequest.user_agent.browser
+ version = int((req.httprequest.user_agent.version or '0').split('.')[0])
+ if browser == 'msie' and version < 9:
+ return "attachment; filename=%s" % escaped
+ elif browser == 'safari':
+ return "attachment; filename=%s" % filename
+ else:
+ return "attachment; filename*=UTF-8''%s" % escaped
+
+
#----------------------------------------------------------
# OpenERP Web web Controllers
#----------------------------------------------------------
}
return req.make_response(db_dump,
[('Content-Type', 'application/octet-stream; charset=binary'),
- ('Content-Disposition', 'attachment; filename="' + filename + '"')],
+ ('Content-Disposition', content_disposition(filename, req))],
{'fileToken': int(token)}
)
except xmlrpclib.Fault, e:
def placeholder(self, req):
addons_path = openerpweb.addons_manifest['web']['addons_path']
return open(os.path.join(addons_path, 'web', 'static', 'src', 'img', 'placeholder.png'), 'rb').read()
- def content_disposition(self, filename, req):
- filename = filename.encode('utf8')
- escaped = urllib2.quote(filename)
- browser = req.httprequest.user_agent.browser
- version = int((req.httprequest.user_agent.version or '0').split('.')[0])
- if browser == 'msie' and version < 9:
- return "attachment; filename=%s" % escaped
- elif browser == 'safari':
- return "attachment; filename=%s" % filename
- else:
- return "attachment; filename*=UTF-8''%s" % escaped
@openerpweb.httprequest
def saveas(self, req, model, field, id=None, filename_field=None, **kw):
filename = res.get(filename_field, '') or filename
return req.make_response(filecontent,
[('Content-Type', 'application/octet-stream'),
- ('Content-Disposition', self.content_disposition(filename, req))])
+ ('Content-Disposition', content_disposition(filename, req))])
@openerpweb.httprequest
def saveas_ajax(self, req, data, token):
filename = res.get(filename_field, '') or filename
return req.make_response(filecontent,
headers=[('Content-Type', 'application/octet-stream'),
- ('Content-Disposition', self.content_disposition(filename, req))],
+ ('Content-Disposition', content_disposition(filename, req))],
cookies={'fileToken': int(token)})
@openerpweb.httprequest
return req.make_response(self.from_data(columns_headers, import_data),
- headers=[('Content-Disposition', 'attachment; filename="%s"' % self.filename(model)),
+ headers=[('Content-Disposition',
+ content_disposition(self.filename(model), req)),
('Content-Type', self.content_type)],
cookies={'fileToken': int(token)})
file_name = reports.read(res_id[0], ['name'], context)['name']
else:
file_name = action['report_name']
+ file_name = '%s.%s' % (file_name, report_struct['format'])
return req.make_response(report,
headers=[
- # maybe we should take of what characters can appear in a file name?
- ('Content-Disposition', 'attachment; filename="%s.%s"' % (file_name, report_struct['format'])),
+ ('Content-Disposition', content_disposition(file_name, req)),
('Content-Type', report_mimetype),
('Content-Length', len(report))],
cookies={'fileToken': int(token)})
"Project-Id-Version: OpenERP Server 6.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
-"PO-Revision-Date: 2011-01-18 05:32+0000\n"
+"PO-Revision-Date: 2012-11-05 00:42+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-10-20 05:06+0000\n"
-"X-Generator: Launchpad (build 16165)\n"
+"X-Launchpad-Export-Date: 2012-11-05 04:40+0000\n"
+"X-Generator: Launchpad (build 16232)\n"
#. module: base
#: model:res.country,name:base.sh
" Accounting/Reporting/Generic Reporting/Partners/Follow-ups Sent\n"
"\n"
msgstr ""
+"\n"
+"Modulo para automatizar cartas para facturas no pagadas, con recordatorios "
+"multi-nivel\n"
+"==========================================================================\n"
+"\n"
+"Pueden definirse múltiples niveles de recordatorios a través del menú:\n"
+" Contabilidad/Configuración/Varios/Seguimientos\n"
+"\n"
+"Una vez definidos, pueden imprimirse automáticamente recordatorios cada día, "
+"simplemente haciendo clic en el menú: \n"
+" Contabilidad/Procesamiento periódico/Facturación/Enviar seguimientos\n"
+"\n"
+"Se generará un PDF con todas las cartas de acuerdo con los diferentes \n"
+"niveles de recordatorio definidos. Se pueden definir diferentes políticas\n"
+"para las distintas compañías . También se puede enviar correo al cliente.\n"
+"\n"
+"Debe denotarse que si se quiere revisar el nivel de seguimiento de una "
+"empresa/cuenta determinada, se puede realizar en el menú:\n"
+" Contabilidad/Informes/Informes genéricos/Empresas/Seguimientos enviados\n"
+"\n"
#. module: base
#: field:res.country,name:0