From 12d6270a2faad7ad0d62d1cc36e31b143208a4bf Mon Sep 17 00:00:00 2001 From: fedoranvar Date: Tue, 6 Aug 2019 09:02:02 +0000 Subject: [PATCH] :arrow_up::one::two: --- res_users_signature/README.rst | 43 +++++++++------ res_users_signature/__init__.py | 3 +- res_users_signature/__manifest__.py | 10 +++- res_users_signature/doc/changelog.rst | 4 ++ res_users_signature/doc/index.rst | 44 +++++++++++++++ res_users_signature/images/main.png | Bin 0 -> 72024 bytes res_users_signature/models/__init__.py | 1 + .../res_users_signature_models.py | 33 +++++------ .../security/res_users_signature_security.xml | 16 +++--- .../static/description/index.html | 52 ++++++++++++++++++ .../{ => views}/res_users_signature_views.xml | 18 ++++-- res_users_signature_hr/README.rst | 37 ++++++++++++- res_users_signature_hr/__manifest__.py | 6 +- res_users_signature_hr/doc/changelog.rst | 4 ++ res_users_signature_hr/doc/index.rst | 45 +++++++++++++++ .../res_users_signature_models.py} | 4 +- .../res_users_signature_hr_views.xml} | 4 +- 17 files changed, 263 insertions(+), 61 deletions(-) create mode 100644 res_users_signature/doc/changelog.rst create mode 100644 res_users_signature/doc/index.rst create mode 100644 res_users_signature/images/main.png create mode 100644 res_users_signature/models/__init__.py rename res_users_signature/{ => models}/res_users_signature_models.py (90%) create mode 100644 res_users_signature/static/description/index.html rename res_users_signature/{ => views}/res_users_signature_views.xml (88%) create mode 100644 res_users_signature_hr/doc/changelog.rst create mode 100644 res_users_signature_hr/doc/index.rst rename res_users_signature_hr/{models.py => models/res_users_signature_models.py} (82%) rename res_users_signature_hr/{views.xml => views/res_users_signature_hr_views.xml} (53%) diff --git a/res_users_signature/README.rst b/res_users_signature/README.rst index 91fe7d3050..7ded1d3a18 100644 --- a/res_users_signature/README.rst +++ b/res_users_signature/README.rst @@ -1,31 +1,40 @@ -Allows create signature templates for users. For example, +=================================== + Signature templates for user email +=================================== - --- +Add templated signature for users -

${user.name}, ${user.function} of ${user.partner_id.company_id.name}

+Credits +======= -

${user.phone}, +Contributors +------------ +* `Ivan Yelizariev `__ +* `Anvar Kildebekov `__ - % if user.mobile +Sponsors +-------- +* `IT-Projects LLC `__ - ${user.mobile}, +Maintainers +----------- +* `IT-Projects LLC `__ - % endif + To get a guaranteed support you are kindly requested to purchase the module at `odoo apps store `__. - ${user.email}

+ Thank you for understanding! -

+ `IT-Projects Team `__ -Will be converted to +Further information +=================== - --- +Demo: http://runbot.it-projects.info/demo/12.0/misc-addons -

Bob, sale manager of You Company

+HTML Description: https://apps.odoo.com/apps/modules/12.0/res_users_signature/ -

+123456789, sales@example.com

+Usage instructions: ``_ -

+Changelog: ``_ -Tested on 8.0 ab7b5d7732a7c222a0aea45bd173742acd47242d - -Further information and discussion: https://yelizariev.github.io/odoo/module/2015/03/17/email-signature-template.html +Tested on Odoo 12.0 32c2666d189047db66eb7b1392ea34b086fd341e diff --git a/res_users_signature/__init__.py b/res_users_signature/__init__.py index a18968a084..35038d03a6 100644 --- a/res_users_signature/__init__.py +++ b/res_users_signature/__init__.py @@ -1 +1,2 @@ -from . import res_users_signature_models +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +from . import models diff --git a/res_users_signature/__manifest__.py b/res_users_signature/__manifest__.py index 5354139354..13269c57d5 100644 --- a/res_users_signature/__manifest__.py +++ b/res_users_signature/__manifest__.py @@ -1,15 +1,19 @@ { 'name': 'Signature templates for user emails', - 'version': '1.0.0', + 'version': '12.0.1.0.0', 'author': 'IT-Projects LLC, Ivan Yelizariev', 'license': 'LGPL-3', 'category': 'Social Network', + "images": ["images/main.jpg"], 'website': 'https://yelizariev.github.io', 'depends': ['base'], 'data': [ - 'res_users_signature_views.xml', + 'views/res_users_signature_views.xml', 'security/res_users_signature_security.xml', 'security/ir.model.access.csv', ], - 'installable': False + 'python': [ + 'html2text', + ], + 'installable': True } diff --git a/res_users_signature/doc/changelog.rst b/res_users_signature/doc/changelog.rst new file mode 100644 index 0000000000..5583eb326a --- /dev/null +++ b/res_users_signature/doc/changelog.rst @@ -0,0 +1,4 @@ +`1.0.0` +------- + +- **Init version** diff --git a/res_users_signature/doc/index.rst b/res_users_signature/doc/index.rst new file mode 100644 index 0000000000..50de992743 --- /dev/null +++ b/res_users_signature/doc/index.rst @@ -0,0 +1,44 @@ +=================================== +Signature templates for user emails +=================================== + +Installation +============ + +* `Install `__ this module in a usual way + +Usage +===== + +* Open menu ``[[ {Menu} ]]>> {Submenu} >> {Subsubmenu}`` +* Click ``[{Button Name}]`` + +Allows create signature templates for users. For example, + + --- + +

${user.name}, ${user.function} of ${user.partner_id.company_id.name}

+ +

${user.phone}, + + % if user.mobile + + ${user.mobile}, + + % endif + + ${user.email}

+ +

+ +Will be converted to + + --- + +

Bob, sale manager of You Company

+ +

+123456789, sales@example.com

+ +

+ +* RESULT: {what user gets, how the modules changes default behaviour} diff --git a/res_users_signature/images/main.png b/res_users_signature/images/main.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf3d839f5ec93c4454b578a6accccaf66c64afd GIT binary patch literal 72024 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 z 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%0A8sn$(# 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 J)Vl|#{0}Jd0OSAw literal 0 HcmV?d00001 diff --git a/res_users_signature/models/__init__.py b/res_users_signature/models/__init__.py new file mode 100644 index 0000000000..a18968a084 --- /dev/null +++ b/res_users_signature/models/__init__.py @@ -0,0 +1 @@ +from . import res_users_signature_models diff --git a/res_users_signature/res_users_signature_models.py b/res_users_signature/models/res_users_signature_models.py similarity index 90% rename from res_users_signature/res_users_signature_models.py rename to res_users_signature/models/res_users_signature_models.py index 71a9af4c6c..b73992cd4c 100644 --- a/res_users_signature/res_users_signature_models.py +++ b/res_users_signature/models/res_users_signature_models.py @@ -1,36 +1,32 @@ -from openerp import fields as old_fields -from openerp import api, models, fields, tools +from odoo import api, models, fields, tools try: - from openerp.addons.email_template.email_template import mako_template_env + from odoo.addons.mail.models.mail_template import mako_template_env except ImportError: - try: - from openerp.addons.mail.mail_template import mako_template_env - except ImportError: - pass + pass -from openerp.loglevels import ustr +from odoo.loglevels import ustr from email.mime.text import MIMEText from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.utils import COMMASPACE from email.utils import formatdate from email.utils import make_msgid -from email import Encoders -from openerp.tools import html2text +from email import encoders +import html2text import re import base64 -from openerp.addons.base.models.ir_mail_server import encode_rfc2822_address_header, encode_header, encode_header_param +from odoo.addons.base.models.ir_mail_server import encode_rfc2822_address_header, encode_header, encode_header_param class ResUsers(models.Model): _inherit = 'res.users' signature_id = fields.Many2one('res.users.signature', string='Signature template', help='Keep empty to edit signature manually') - - 'signature': old_fields.Html('Signature', sanitize=False) - + _columns = { + 'signature': fields.Html('Signature', sanitize=False) + } @api.one @api.onchange('signature_id') @@ -53,6 +49,7 @@ def write(self, vals): class ResUsersSignature(models.Model): _name = 'res.users.signature' + _description = 'Users signatures' name = fields.Char('Name') comment = fields.Text('Internal note') @@ -112,7 +109,7 @@ class IrMailServer(models.Model): def build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain'): - """ copy-pasted from openerp/addons/base/models/ir_mail_server.py::build_email """ + """ copy-pasted from odoo/addons/base/models/ir_mail_server.py::build_email """ ftemplate = '__image-%s__' fcounter = 0 @@ -184,7 +181,7 @@ def build_email(self, email_from, email_to, subject, body, email_cc=None, email_ msg['Bcc'] = encode_rfc2822_address_header(COMMASPACE.join(email_bcc)) msg['Date'] = formatdate() # Custom headers may override normal headers or provide additional ones - for key, value in headers.iteritems(): + for key, value in headers.items(): msg[ustr(key).encode('utf-8')] = encode_header(value) if subtype == 'html' and not body_alternative and html2text: @@ -212,11 +209,11 @@ def build_email(self, email_from, email_to, subject, body, email_cc=None, email_ # The default RFC2231 encoding of Message.add_header() works in Thunderbird but not GMail # so we fix it by using RFC2047 encoding for the filename instead. - part.set_param('name', filename_rfc2047) + part.sudo().set_param('name', filename_rfc2047) part.add_header('Content-Disposition', 'attachment', filename=filename_rfc2047) part.add_header('Content-ID', '<%s>' % filename_rfc2047) # NEW STUFF part.set_payload(fcontent) - Encoders.encode_base64(part) + encoders.encode_base64(part) msg.attach(part) return msg diff --git a/res_users_signature/security/res_users_signature_security.xml b/res_users_signature/security/res_users_signature_security.xml index 3f188cb688..aa85d8c883 100644 --- a/res_users_signature/security/res_users_signature_security.xml +++ b/res_users_signature/security/res_users_signature_security.xml @@ -1,10 +1,8 @@ - - - - Signature administrator - the user will have access to edit signatures - - - - + + + Signature administrator + the user will have access to edit signatures + + + diff --git a/res_users_signature/static/description/index.html b/res_users_signature/static/description/index.html new file mode 100644 index 0000000000..134cea1ad8 --- /dev/null +++ b/res_users_signature/static/description/index.html @@ -0,0 +1,52 @@ +

+
+
+

Need our service?

+

Contact us by email or fill out request form

+ +
+
+
+
+ Tested on Odoo
12.0 community +
+ +
+
+
+
diff --git a/res_users_signature/res_users_signature_views.xml b/res_users_signature/views/res_users_signature_views.xml similarity index 88% rename from res_users_signature/res_users_signature_views.xml rename to res_users_signature/views/res_users_signature_views.xml index 49988c6630..791daa196d 100644 --- a/res_users_signature/res_users_signature_views.xml +++ b/res_users_signature/views/res_users_signature_views.xml @@ -1,6 +1,5 @@ - - + res.users.form @@ -58,7 +57,7 @@ - + + + Update signatures + + + code + + self.action_update_signature(cr, uid, context['active_ids'], context=context) + + Signatures @@ -86,5 +95,4 @@ - - + diff --git a/res_users_signature_hr/README.rst b/res_users_signature_hr/README.rst index 045bf1b587..089008d7e4 100644 --- a/res_users_signature_hr/README.rst +++ b/res_users_signature_hr/README.rst @@ -1,4 +1,5 @@ -Signature templates for user emails (HR) +======================================== + Signature templates for user email (HR) ======================================== Connector for modules: @@ -6,3 +7,37 @@ Connector for modules: * Signature templates for user emails * HR +Credits +======= + +Contributors +------------ +* `Ivan Yelizariev `__ +* `Anvar Kildebekov `__ + +Sponsors +-------- +* `IT-Projects LLC `__ + +Maintainers +----------- +* `IT-Projects LLC `__ + + To get a guaranteed support you are kindly requested to purchase the module at `odoo apps store `__. + + Thank you for understanding! + + `IT-Projects Team `__ + +Further information +=================== + +Demo: http://runbot.it-projects.info/demo/12.0/pos-addons + +HTML Description: https://apps.odoo.com/apps/modules/12.0/pos_menu/ + +Usage instructions: ``_ + +Changelog: ``_ + +Tested on 12.0 32c2666d189047db66eb7b1392ea34b086fd341e diff --git a/res_users_signature_hr/__manifest__.py b/res_users_signature_hr/__manifest__.py index 79e6d16883..422d88ebd7 100644 --- a/res_users_signature_hr/__manifest__.py +++ b/res_users_signature_hr/__manifest__.py @@ -1,14 +1,14 @@ { 'name': "Signature templates for user emails (HR)", - 'version': '1.0.0', + 'version': '12.0.1.0.0', 'author': 'IT-Projects LLC, Ivan Yelizariev', 'license': 'LGPL-3', 'category': 'Custom', 'website': 'https://yelizariev.github.io', 'depends': ['res_users_signature', 'hr'], 'data': [ - 'views.xml', + 'views/res_users_signature_hr_views.xml', ], - 'installable': False, + 'installable': True, 'auto_install': True, } diff --git a/res_users_signature_hr/doc/changelog.rst b/res_users_signature_hr/doc/changelog.rst new file mode 100644 index 0000000000..5583eb326a --- /dev/null +++ b/res_users_signature_hr/doc/changelog.rst @@ -0,0 +1,4 @@ +`1.0.0` +------- + +- **Init version** diff --git a/res_users_signature_hr/doc/index.rst b/res_users_signature_hr/doc/index.rst new file mode 100644 index 0000000000..75f9a10be0 --- /dev/null +++ b/res_users_signature_hr/doc/index.rst @@ -0,0 +1,45 @@ +======================================== +Signature templates for user emails (HR) +======================================== + +Installation +============ + +* `Install `__ this module in a usual way + +Usage +===== + +* Open signatures ``[[Settings]]>> Users and Companies >> Signatures`` +* Click ``[Create]`` +* Fill the fields + +Template example: + + --- + +

${user.name}, ${user.function} of ${user.partner_id.company_id.name}

+ +

${user.phone}, + + % if user.mobile + + ${user.mobile}, + + % endif + + ${user.email}

+ +

+ +Will be converted to + + --- + +

Bob, sale manager of You Company

+ +

+123456789, sales@example.com

+ +

+ +* RESULT: {what user gets, how the modules changes default behaviour} diff --git a/res_users_signature_hr/models.py b/res_users_signature_hr/models/res_users_signature_models.py similarity index 82% rename from res_users_signature_hr/models.py rename to res_users_signature_hr/models/res_users_signature_models.py index a9382067fe..b571f68c96 100644 --- a/res_users_signature_hr/models.py +++ b/res_users_signature_hr/models/res_users_signature_models.py @@ -1,5 +1,5 @@ -from openerp import api -from openerp import models +from odoo import api +from odoo import models class HrEmployee(models.Model): diff --git a/res_users_signature_hr/views.xml b/res_users_signature_hr/views/res_users_signature_hr_views.xml similarity index 53% rename from res_users_signature_hr/views.xml rename to res_users_signature_hr/views/res_users_signature_hr_views.xml index 379a8683a4..6fa84137e4 100644 --- a/res_users_signature_hr/views.xml +++ b/res_users_signature_hr/views/res_users_signature_hr_views.xml @@ -1,3 +1,3 @@ - - + +