From cecff5bca12aa6f15dfa3151c25ffa445df6f10e Mon Sep 17 00:00:00 2001
From: Olivier Sarrat
Date: Mon, 16 Jan 2017 15:04:22 +0100
Subject: [PATCH] Add used modules for Groupe URD production server
---
calendar_ics/__init__.py | 2 +
calendar_ics/__init__.pyc | Bin 0 -> 206 bytes
calendar_ics/__openerp__.py | 43 ++
calendar_ics/calendar.py | 312 ++++++++++++
calendar_ics/calendar.pyc | Bin 0 -> 7876 bytes
calendar_ics/calendar_ics_demo.xml | 76 +++
calendar_ics/calendar_view.xml | 108 +++++
calendar_ics/res_partner - Copie.py | 287 +++++++++++
calendar_ics/res_partner.py | 279 +++++++++++
calendar_ics/res_partner.pyc | Bin 0 -> 9888 bytes
calendar_ics/res_partner_data.xml | 29 ++
calendar_ics/res_partner_view.xml | 32 ++
calendar_ics/security/ir.model.access.csv | 3 +
google_account/__init__.py | 24 +
google_account/__openerp__.py | 41 ++
google_account/controllers/__init__.py | 1 +
google_account/controllers/main.py | 32 ++
google_account/google_account.py | 189 ++++++++
google_account/google_account.xml | 9 +
google_account/google_account_data.xml | 9 +
google_account/i18n/af.po | 49 ++
google_account/i18n/ar.po | 52 ++
google_account/i18n/bg.po | 50 ++
google_account/i18n/bs.po | 49 ++
google_account/i18n/ca.po | 49 ++
google_account/i18n/cs.po | 49 ++
google_account/i18n/da.po | 49 ++
google_account/i18n/de.po | 51 ++
google_account/i18n/el.po | 50 ++
google_account/i18n/en_GB.po | 49 ++
google_account/i18n/es.po | 52 ++
google_account/i18n/es_AR.po | 50 ++
google_account/i18n/es_BO.po | 49 ++
google_account/i18n/es_CL.po | 49 ++
google_account/i18n/es_CO.po | 49 ++
google_account/i18n/es_CR.po | 50 ++
google_account/i18n/es_DO.po | 49 ++
google_account/i18n/es_EC.po | 49 ++
google_account/i18n/es_MX.po | 49 ++
google_account/i18n/es_PA.po | 49 ++
google_account/i18n/es_PE.po | 50 ++
google_account/i18n/es_PY.po | 49 ++
google_account/i18n/es_VE.po | 49 ++
google_account/i18n/et.po | 49 ++
google_account/i18n/eu.po | 50 ++
google_account/i18n/fa.po | 49 ++
google_account/i18n/fi.po | 51 ++
google_account/i18n/fr.po | 51 ++
google_account/i18n/fr_BE.po | 49 ++
google_account/i18n/fr_CA.po | 49 ++
google_account/i18n/gl.po | 49 ++
google_account/i18n/google_account.pot | 48 ++
google_account/i18n/google_base_account.pot | 106 ++++
google_account/i18n/gu.po | 49 ++
google_account/i18n/he.po | 49 ++
google_account/i18n/hi.po | 50 ++
google_account/i18n/hr.po | 50 ++
google_account/i18n/hu.po | 52 ++
google_account/i18n/id.po | 50 ++
google_account/i18n/is.po | 49 ++
google_account/i18n/it.po | 50 ++
google_account/i18n/ja.po | 52 ++
google_account/i18n/ka.po | 49 ++
google_account/i18n/kab.po | 51 ++
google_account/i18n/ko.po | 49 ++
google_account/i18n/ln.po | 49 ++
google_account/i18n/lt.po | 49 ++
google_account/i18n/lv.po | 49 ++
google_account/i18n/mk.po | 51 ++
google_account/i18n/ml_IN.po | 50 ++
google_account/i18n/mn.po | 50 ++
google_account/i18n/nb.po | 50 ++
google_account/i18n/nl.po | 51 ++
google_account/i18n/nl_BE.po | 49 ++
google_account/i18n/pl.po | 50 ++
google_account/i18n/pt.po | 50 ++
google_account/i18n/pt_BR.po | 51 ++
google_account/i18n/ro.po | 50 ++
google_account/i18n/ru.po | 51 ++
google_account/i18n/sk.po | 49 ++
google_account/i18n/sl.po | 51 ++
google_account/i18n/sq.po | 49 ++
google_account/i18n/sr.po | 49 ++
google_account/i18n/sr@latin.po | 50 ++
google_account/i18n/sv.po | 51 ++
google_account/i18n/ta.po | 49 ++
google_account/i18n/th.po | 50 ++
google_account/i18n/tr.po | 50 ++
google_account/i18n/uk.po | 50 ++
google_account/i18n/vi.po | 49 ++
google_account/i18n/zh_CN.po | 51 ++
google_account/i18n/zh_TW.po | 49 ++
mail_tracking/README.rst | 112 +++++
mail_tracking/__init__.py | 8 +
mail_tracking/__init__.pyc | Bin 0 -> 294 bytes
mail_tracking/__openerp__.py | 32 ++
mail_tracking/controllers/__init__.py | 6 +
mail_tracking/controllers/__init__.pyc | Bin 0 -> 204 bytes
mail_tracking/controllers/main.py | 86 ++++
mail_tracking/controllers/main.pyc | Bin 0 -> 3465 bytes
mail_tracking/data/tracking_data.xml | 13 +
mail_tracking/hooks.py | 36 ++
mail_tracking/hooks.pyc | Bin 0 -> 1598 bytes
mail_tracking/i18n/am.po | 448 +++++++++++++++++
mail_tracking/i18n/ca.po | 448 +++++++++++++++++
mail_tracking/i18n/de.po | 449 +++++++++++++++++
mail_tracking/i18n/el_GR.po | 448 +++++++++++++++++
mail_tracking/i18n/es.po | 440 +++++++++++++++++
mail_tracking/i18n/es_ES.po | 448 +++++++++++++++++
mail_tracking/i18n/fi.po | 449 +++++++++++++++++
mail_tracking/i18n/fr.po | 448 +++++++++++++++++
mail_tracking/i18n/gl.po | 448 +++++++++++++++++
mail_tracking/i18n/it.po | 448 +++++++++++++++++
mail_tracking/i18n/nl.po | 448 +++++++++++++++++
mail_tracking/i18n/pt.po | 448 +++++++++++++++++
mail_tracking/i18n/pt_BR.po | 448 +++++++++++++++++
mail_tracking/i18n/pt_PT.po | 448 +++++++++++++++++
mail_tracking/i18n/sl.po | 458 ++++++++++++++++++
mail_tracking/i18n/tr.po | 448 +++++++++++++++++
mail_tracking/models/__init__.py | 11 +
mail_tracking/models/__init__.pyc | Bin 0 -> 444 bytes
mail_tracking/models/ir_mail_server.py | 94 ++++
mail_tracking/models/ir_mail_server.pyc | Bin 0 -> 3878 bytes
mail_tracking/models/mail_mail.py | 43 ++
mail_tracking/models/mail_mail.pyc | Bin 0 -> 1902 bytes
mail_tracking/models/mail_message.py | 54 +++
mail_tracking/models/mail_message.pyc | Bin 0 -> 2145 bytes
mail_tracking/models/mail_tracking_email.py | 312 ++++++++++++
mail_tracking/models/mail_tracking_email.pyc | Bin 0 -> 12602 bytes
mail_tracking/models/mail_tracking_event.py | 136 ++++++
mail_tracking/models/mail_tracking_event.pyc | Bin 0 -> 6765 bytes
mail_tracking/models/res_partner.py | 46 ++
mail_tracking/models/res_partner.pyc | Bin 0 -> 2024 bytes
mail_tracking/security/ir.model.access.csv | 5 +
mail_tracking/static/description/icon.png | Bin 0 -> 5896 bytes
.../static/src/css/mail_tracking.css | 13 +
mail_tracking/static/src/img/delivered.png | Bin 0 -> 285 bytes
mail_tracking/static/src/img/error.png | Bin 0 -> 257 bytes
mail_tracking/static/src/img/opened.png | Bin 0 -> 368 bytes
mail_tracking/static/src/img/sent.png | Bin 0 -> 294 bytes
mail_tracking/static/src/img/unknown.png | Bin 0 -> 425 bytes
mail_tracking/static/src/img/waiting.png | Bin 0 -> 348 bytes
mail_tracking/static/src/js/mail_tracking.js | 62 +++
.../static/src/xml/mail_tracking.xml | 61 +++
mail_tracking/tests/__init__.py | 6 +
mail_tracking/tests/test_mail_tracking.py | 261 ++++++++++
mail_tracking/views/assets.xml | 19 +
.../views/mail_tracking_email_view.xml | 122 +++++
.../views/mail_tracking_event_view.xml | 125 +++++
mail_tracking/views/res_partner_view.xml | 33 ++
mail_tracking_mailgun/README.rst | 86 ++++
mail_tracking_mailgun/__init__.py | 5 +
mail_tracking_mailgun/__init__.pyc | Bin 0 -> 202 bytes
mail_tracking_mailgun/__openerp__.py | 18 +
mail_tracking_mailgun/i18n/es.po | 24 +
mail_tracking_mailgun/i18n/fr.po | 24 +
mail_tracking_mailgun/i18n/sl.po | 24 +
mail_tracking_mailgun/models/__init__.py | 6 +
mail_tracking_mailgun/models/__init__.pyc | Bin 0 -> 269 bytes
.../models/ir_mail_server.py | 23 +
.../models/ir_mail_server.pyc | Bin 0 -> 969 bytes
.../models/mail_tracking_email.py | 194 ++++++++
.../models/mail_tracking_email.pyc | Bin 0 -> 7030 bytes
.../static/description/icon.png | Bin 0 -> 6485 bytes
.../static/description/icon.svg | 6 +
mail_tracking_mailgun/tests/__init__.py | 5 +
mail_tracking_mailgun/tests/test_mailgun.py | 281 +++++++++++
mail_tracking_mass_mailing/README.rst | 77 +++
mail_tracking_mass_mailing/__init__.py | 6 +
mail_tracking_mass_mailing/__init__.pyc | Bin 0 -> 263 bytes
mail_tracking_mass_mailing/__openerp__.py | 28 ++
mail_tracking_mass_mailing/hooks.py | 20 +
mail_tracking_mass_mailing/hooks.pyc | Bin 0 -> 797 bytes
mail_tracking_mass_mailing/i18n/ca.po | 142 ++++++
mail_tracking_mass_mailing/i18n/de.po | 142 ++++++
mail_tracking_mass_mailing/i18n/es.po | 124 +++++
mail_tracking_mass_mailing/i18n/es_CO.po | 142 ++++++
mail_tracking_mass_mailing/i18n/fr.po | 125 +++++
mail_tracking_mass_mailing/i18n/pt_BR.po | 142 ++++++
mail_tracking_mass_mailing/i18n/sl.po | 127 +++++
mail_tracking_mass_mailing/models/__init__.py | 10 +
.../models/__init__.pyc | Bin 0 -> 482 bytes
.../models/mail_mail.py | 24 +
.../models/mail_mail.pyc | Bin 0 -> 1244 bytes
.../models/mail_mail_statistics.py | 16 +
.../models/mail_mail_statistics.pyc | Bin 0 -> 901 bytes
.../models/mail_mass_mailing.py | 31 ++
.../models/mail_mass_mailing.pyc | Bin 0 -> 1535 bytes
.../models/mail_mass_mailing_contact.py | 28 ++
.../models/mail_mass_mailing_contact.pyc | Bin 0 -> 1576 bytes
.../models/mail_tracking_email.py | 52 ++
.../models/mail_tracking_email.pyc | Bin 0 -> 2267 bytes
.../models/mail_tracking_event.py | 49 ++
.../models/mail_tracking_event.pyc | Bin 0 -> 2525 bytes
.../static/description/icon.png | Bin 0 -> 9455 bytes
mail_tracking_mass_mailing/tests/__init__.py | 5 +
.../tests/test_mass_mailing.py | 113 +++++
.../views/mail_mail_statistics_view.xml | 35 ++
.../views/mail_mass_mailing_contact_view.xml | 19 +
.../views/mail_mass_mailing_view.xml | 19 +
.../views/mail_tracking_email_view.xml | 20 +
smile_access_control/__init__.py | 22 +
smile_access_control/__init__.pyc | Bin 0 -> 182 bytes
smile_access_control/__openerp__.py | 55 +++
smile_access_control/data/res_users_data.xml | 10 +
smile_access_control/i18n/fr.po | 109 +++++
smile_access_control/models/__init__.py | 23 +
smile_access_control/models/__init__.pyc | Bin 0 -> 221 bytes
smile_access_control/models/res_groups.py | 115 +++++
smile_access_control/models/res_groups.pyc | Bin 0 -> 4594 bytes
smile_access_control/models/res_users.py | 130 +++++
smile_access_control/models/res_users.pyc | Bin 0 -> 6754 bytes
.../static/description/icon.png | Bin 0 -> 1156 bytes
smile_access_control/tests/__init__.py | 24 +
.../tests/test_access_control.py | 102 ++++
smile_access_control/tests/test_groups.py | 99 ++++
smile_access_control/tests/test_users.py | 103 ++++
.../views/res_groups_view.xml | 24 +
smile_access_control/views/res_users_view.xml | 133 +++++
smile_event_event_calendar/__init__.py | 22 +
smile_event_event_calendar/__init__.pyc | Bin 0 -> 188 bytes
smile_event_event_calendar/__openerp__.py | 45 ++
smile_event_event_calendar/models/__init__.py | 23 +
.../models/__init__.pyc | Bin 0 -> 227 bytes
.../models/calendar_event.py | 46 ++
.../models/calendar_event.pyc | Bin 0 -> 1679 bytes
smile_event_event_calendar/models/event.py | 70 +++
smile_event_event_calendar/models/event.pyc | Bin 0 -> 2302 bytes
.../static/description/icon.png | Bin 0 -> 1156 bytes
.../views/calendar_view.xml | 18 +
230 files changed, 17347 insertions(+)
create mode 100644 calendar_ics/__init__.py
create mode 100644 calendar_ics/__init__.pyc
create mode 100644 calendar_ics/__openerp__.py
create mode 100644 calendar_ics/calendar.py
create mode 100644 calendar_ics/calendar.pyc
create mode 100644 calendar_ics/calendar_ics_demo.xml
create mode 100644 calendar_ics/calendar_view.xml
create mode 100644 calendar_ics/res_partner - Copie.py
create mode 100644 calendar_ics/res_partner.py
create mode 100644 calendar_ics/res_partner.pyc
create mode 100644 calendar_ics/res_partner_data.xml
create mode 100644 calendar_ics/res_partner_view.xml
create mode 100644 calendar_ics/security/ir.model.access.csv
create mode 100644 google_account/__init__.py
create mode 100644 google_account/__openerp__.py
create mode 100644 google_account/controllers/__init__.py
create mode 100644 google_account/controllers/main.py
create mode 100644 google_account/google_account.py
create mode 100644 google_account/google_account.xml
create mode 100644 google_account/google_account_data.xml
create mode 100644 google_account/i18n/af.po
create mode 100644 google_account/i18n/ar.po
create mode 100644 google_account/i18n/bg.po
create mode 100644 google_account/i18n/bs.po
create mode 100644 google_account/i18n/ca.po
create mode 100644 google_account/i18n/cs.po
create mode 100644 google_account/i18n/da.po
create mode 100644 google_account/i18n/de.po
create mode 100644 google_account/i18n/el.po
create mode 100644 google_account/i18n/en_GB.po
create mode 100644 google_account/i18n/es.po
create mode 100644 google_account/i18n/es_AR.po
create mode 100644 google_account/i18n/es_BO.po
create mode 100644 google_account/i18n/es_CL.po
create mode 100644 google_account/i18n/es_CO.po
create mode 100644 google_account/i18n/es_CR.po
create mode 100644 google_account/i18n/es_DO.po
create mode 100644 google_account/i18n/es_EC.po
create mode 100644 google_account/i18n/es_MX.po
create mode 100644 google_account/i18n/es_PA.po
create mode 100644 google_account/i18n/es_PE.po
create mode 100644 google_account/i18n/es_PY.po
create mode 100644 google_account/i18n/es_VE.po
create mode 100644 google_account/i18n/et.po
create mode 100644 google_account/i18n/eu.po
create mode 100644 google_account/i18n/fa.po
create mode 100644 google_account/i18n/fi.po
create mode 100644 google_account/i18n/fr.po
create mode 100644 google_account/i18n/fr_BE.po
create mode 100644 google_account/i18n/fr_CA.po
create mode 100644 google_account/i18n/gl.po
create mode 100644 google_account/i18n/google_account.pot
create mode 100644 google_account/i18n/google_base_account.pot
create mode 100644 google_account/i18n/gu.po
create mode 100644 google_account/i18n/he.po
create mode 100644 google_account/i18n/hi.po
create mode 100644 google_account/i18n/hr.po
create mode 100644 google_account/i18n/hu.po
create mode 100644 google_account/i18n/id.po
create mode 100644 google_account/i18n/is.po
create mode 100644 google_account/i18n/it.po
create mode 100644 google_account/i18n/ja.po
create mode 100644 google_account/i18n/ka.po
create mode 100644 google_account/i18n/kab.po
create mode 100644 google_account/i18n/ko.po
create mode 100644 google_account/i18n/ln.po
create mode 100644 google_account/i18n/lt.po
create mode 100644 google_account/i18n/lv.po
create mode 100644 google_account/i18n/mk.po
create mode 100644 google_account/i18n/ml_IN.po
create mode 100644 google_account/i18n/mn.po
create mode 100644 google_account/i18n/nb.po
create mode 100644 google_account/i18n/nl.po
create mode 100644 google_account/i18n/nl_BE.po
create mode 100644 google_account/i18n/pl.po
create mode 100644 google_account/i18n/pt.po
create mode 100644 google_account/i18n/pt_BR.po
create mode 100644 google_account/i18n/ro.po
create mode 100644 google_account/i18n/ru.po
create mode 100644 google_account/i18n/sk.po
create mode 100644 google_account/i18n/sl.po
create mode 100644 google_account/i18n/sq.po
create mode 100644 google_account/i18n/sr.po
create mode 100644 google_account/i18n/sr@latin.po
create mode 100644 google_account/i18n/sv.po
create mode 100644 google_account/i18n/ta.po
create mode 100644 google_account/i18n/th.po
create mode 100644 google_account/i18n/tr.po
create mode 100644 google_account/i18n/uk.po
create mode 100644 google_account/i18n/vi.po
create mode 100644 google_account/i18n/zh_CN.po
create mode 100644 google_account/i18n/zh_TW.po
create mode 100644 mail_tracking/README.rst
create mode 100644 mail_tracking/__init__.py
create mode 100644 mail_tracking/__init__.pyc
create mode 100644 mail_tracking/__openerp__.py
create mode 100644 mail_tracking/controllers/__init__.py
create mode 100644 mail_tracking/controllers/__init__.pyc
create mode 100644 mail_tracking/controllers/main.py
create mode 100644 mail_tracking/controllers/main.pyc
create mode 100644 mail_tracking/data/tracking_data.xml
create mode 100644 mail_tracking/hooks.py
create mode 100644 mail_tracking/hooks.pyc
create mode 100644 mail_tracking/i18n/am.po
create mode 100644 mail_tracking/i18n/ca.po
create mode 100644 mail_tracking/i18n/de.po
create mode 100644 mail_tracking/i18n/el_GR.po
create mode 100644 mail_tracking/i18n/es.po
create mode 100644 mail_tracking/i18n/es_ES.po
create mode 100644 mail_tracking/i18n/fi.po
create mode 100644 mail_tracking/i18n/fr.po
create mode 100644 mail_tracking/i18n/gl.po
create mode 100644 mail_tracking/i18n/it.po
create mode 100644 mail_tracking/i18n/nl.po
create mode 100644 mail_tracking/i18n/pt.po
create mode 100644 mail_tracking/i18n/pt_BR.po
create mode 100644 mail_tracking/i18n/pt_PT.po
create mode 100644 mail_tracking/i18n/sl.po
create mode 100644 mail_tracking/i18n/tr.po
create mode 100644 mail_tracking/models/__init__.py
create mode 100644 mail_tracking/models/__init__.pyc
create mode 100644 mail_tracking/models/ir_mail_server.py
create mode 100644 mail_tracking/models/ir_mail_server.pyc
create mode 100644 mail_tracking/models/mail_mail.py
create mode 100644 mail_tracking/models/mail_mail.pyc
create mode 100644 mail_tracking/models/mail_message.py
create mode 100644 mail_tracking/models/mail_message.pyc
create mode 100644 mail_tracking/models/mail_tracking_email.py
create mode 100644 mail_tracking/models/mail_tracking_email.pyc
create mode 100644 mail_tracking/models/mail_tracking_event.py
create mode 100644 mail_tracking/models/mail_tracking_event.pyc
create mode 100644 mail_tracking/models/res_partner.py
create mode 100644 mail_tracking/models/res_partner.pyc
create mode 100644 mail_tracking/security/ir.model.access.csv
create mode 100644 mail_tracking/static/description/icon.png
create mode 100644 mail_tracking/static/src/css/mail_tracking.css
create mode 100644 mail_tracking/static/src/img/delivered.png
create mode 100644 mail_tracking/static/src/img/error.png
create mode 100644 mail_tracking/static/src/img/opened.png
create mode 100644 mail_tracking/static/src/img/sent.png
create mode 100644 mail_tracking/static/src/img/unknown.png
create mode 100644 mail_tracking/static/src/img/waiting.png
create mode 100644 mail_tracking/static/src/js/mail_tracking.js
create mode 100644 mail_tracking/static/src/xml/mail_tracking.xml
create mode 100644 mail_tracking/tests/__init__.py
create mode 100644 mail_tracking/tests/test_mail_tracking.py
create mode 100644 mail_tracking/views/assets.xml
create mode 100644 mail_tracking/views/mail_tracking_email_view.xml
create mode 100644 mail_tracking/views/mail_tracking_event_view.xml
create mode 100644 mail_tracking/views/res_partner_view.xml
create mode 100644 mail_tracking_mailgun/README.rst
create mode 100644 mail_tracking_mailgun/__init__.py
create mode 100644 mail_tracking_mailgun/__init__.pyc
create mode 100644 mail_tracking_mailgun/__openerp__.py
create mode 100644 mail_tracking_mailgun/i18n/es.po
create mode 100644 mail_tracking_mailgun/i18n/fr.po
create mode 100644 mail_tracking_mailgun/i18n/sl.po
create mode 100644 mail_tracking_mailgun/models/__init__.py
create mode 100644 mail_tracking_mailgun/models/__init__.pyc
create mode 100644 mail_tracking_mailgun/models/ir_mail_server.py
create mode 100644 mail_tracking_mailgun/models/ir_mail_server.pyc
create mode 100644 mail_tracking_mailgun/models/mail_tracking_email.py
create mode 100644 mail_tracking_mailgun/models/mail_tracking_email.pyc
create mode 100644 mail_tracking_mailgun/static/description/icon.png
create mode 100644 mail_tracking_mailgun/static/description/icon.svg
create mode 100644 mail_tracking_mailgun/tests/__init__.py
create mode 100644 mail_tracking_mailgun/tests/test_mailgun.py
create mode 100644 mail_tracking_mass_mailing/README.rst
create mode 100644 mail_tracking_mass_mailing/__init__.py
create mode 100644 mail_tracking_mass_mailing/__init__.pyc
create mode 100644 mail_tracking_mass_mailing/__openerp__.py
create mode 100644 mail_tracking_mass_mailing/hooks.py
create mode 100644 mail_tracking_mass_mailing/hooks.pyc
create mode 100644 mail_tracking_mass_mailing/i18n/ca.po
create mode 100644 mail_tracking_mass_mailing/i18n/de.po
create mode 100644 mail_tracking_mass_mailing/i18n/es.po
create mode 100644 mail_tracking_mass_mailing/i18n/es_CO.po
create mode 100644 mail_tracking_mass_mailing/i18n/fr.po
create mode 100644 mail_tracking_mass_mailing/i18n/pt_BR.po
create mode 100644 mail_tracking_mass_mailing/i18n/sl.po
create mode 100644 mail_tracking_mass_mailing/models/__init__.py
create mode 100644 mail_tracking_mass_mailing/models/__init__.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_mail.py
create mode 100644 mail_tracking_mass_mailing/models/mail_mail.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_mail_statistics.py
create mode 100644 mail_tracking_mass_mailing/models/mail_mail_statistics.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_mass_mailing.py
create mode 100644 mail_tracking_mass_mailing/models/mail_mass_mailing.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py
create mode 100644 mail_tracking_mass_mailing/models/mail_mass_mailing_contact.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_tracking_email.py
create mode 100644 mail_tracking_mass_mailing/models/mail_tracking_email.pyc
create mode 100644 mail_tracking_mass_mailing/models/mail_tracking_event.py
create mode 100644 mail_tracking_mass_mailing/models/mail_tracking_event.pyc
create mode 100644 mail_tracking_mass_mailing/static/description/icon.png
create mode 100644 mail_tracking_mass_mailing/tests/__init__.py
create mode 100644 mail_tracking_mass_mailing/tests/test_mass_mailing.py
create mode 100644 mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml
create mode 100644 mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml
create mode 100644 mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml
create mode 100644 mail_tracking_mass_mailing/views/mail_tracking_email_view.xml
create mode 100644 smile_access_control/__init__.py
create mode 100644 smile_access_control/__init__.pyc
create mode 100644 smile_access_control/__openerp__.py
create mode 100644 smile_access_control/data/res_users_data.xml
create mode 100644 smile_access_control/i18n/fr.po
create mode 100644 smile_access_control/models/__init__.py
create mode 100644 smile_access_control/models/__init__.pyc
create mode 100644 smile_access_control/models/res_groups.py
create mode 100644 smile_access_control/models/res_groups.pyc
create mode 100644 smile_access_control/models/res_users.py
create mode 100644 smile_access_control/models/res_users.pyc
create mode 100644 smile_access_control/static/description/icon.png
create mode 100644 smile_access_control/tests/__init__.py
create mode 100644 smile_access_control/tests/test_access_control.py
create mode 100644 smile_access_control/tests/test_groups.py
create mode 100644 smile_access_control/tests/test_users.py
create mode 100644 smile_access_control/views/res_groups_view.xml
create mode 100644 smile_access_control/views/res_users_view.xml
create mode 100644 smile_event_event_calendar/__init__.py
create mode 100644 smile_event_event_calendar/__init__.pyc
create mode 100644 smile_event_event_calendar/__openerp__.py
create mode 100644 smile_event_event_calendar/models/__init__.py
create mode 100644 smile_event_event_calendar/models/__init__.pyc
create mode 100644 smile_event_event_calendar/models/calendar_event.py
create mode 100644 smile_event_event_calendar/models/calendar_event.pyc
create mode 100644 smile_event_event_calendar/models/event.py
create mode 100644 smile_event_event_calendar/models/event.pyc
create mode 100644 smile_event_event_calendar/static/description/icon.png
create mode 100644 smile_event_event_calendar/views/calendar_view.xml
diff --git a/calendar_ics/__init__.py b/calendar_ics/__init__.py
new file mode 100644
index 0000000..071a504
--- /dev/null
+++ b/calendar_ics/__init__.py
@@ -0,0 +1,2 @@
+import calendar
+import res_partner
diff --git a/calendar_ics/__init__.pyc b/calendar_ics/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b33230b5e014d2bb6bd6f056095f624c16f860d6
GIT binary patch
literal 206
zcmYLDO9}!p3~hBI{!ZWlW}`iTBA&pF;9?L$nN%otn$nDj=XNcc4t_%N@?Hop89rv?
z)BJgC)F%egcT&6%KuN8FQuU8(RqHZ5RAtk@B=$Y+Mxq-VTtu6@iHPhNlJMwqB~tx?
z*CI{p&|AZ2AS7DeC|}TLV-YE`Ntw`m?Z7u|0DSZvz$)GQTbq{f8r)Wk7nf(I`VFt{
BF).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Calendar ics-urls',
+ 'version': '0.1',
+ 'category': 'Tools',
+ 'summary': 'Subscription on calendar.ics-urls',
+ 'licence': 'AGPL-3',
+ 'description': """
+Adds and updates calendar objects according to an ics-url
+
+""",
+ 'author': 'Vertel AB',
+ 'website': 'http://www.vertel.se',
+ 'depends': ['calendar',],
+ 'data': [ 'res_partner_view.xml',
+ #'security/ir.model.access.csv',
+ 'res_partner_data.xml'
+ ],
+ 'application': False,
+ 'installable': True,
+ 'demo': ['calendar_ics_demo.xml',],
+}
+# vim:expandtab:smartindent:tabstop=4s:softtabstop=4:shiftwidth=4:
diff --git a/calendar_ics/calendar.py b/calendar_ics/calendar.py
new file mode 100644
index 0000000..3970b1f
--- /dev/null
+++ b/calendar_ics/calendar.py
@@ -0,0 +1,312 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution, third party addon
+# Copyright (C) 2004-2016 Vertel AB ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp import models, fields, api, _
+from pytz import timezone
+from openerp.exceptions import except_orm, Warning, RedirectWarning
+from datetime import datetime, timedelta, time
+from time import strptime, mktime, strftime
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+import re
+
+from openerp import http
+from openerp.http import request
+
+import logging
+_logger = logging.getLogger(__name__)
+
+
+try:
+ from icalendar import Calendar, Event, vDatetime, FreeBusy
+except ImportError:
+ raise Warning('icalendar library missing, pip install icalendar')
+
+try:
+ import urllib2
+except ImportError:
+ raise Warning('urllib2 library missing, pip install urllib2')
+
+
+# calendar_ics -> res.partner
+
+# http://ical.oops.se/holidays/Sweden/-1,+1
+# http://www.skatteverketkalender.se/skvcal-manadsmoms-maxfyrtiomiljoner-ingenperiodisk-ingenrotrut-verk1.ics
+
+class calendar_event(models.Model):
+ _inherit = 'calendar.event'
+
+ ics_subscription = fields.Boolean(default=False) # partner_ids + ics_subscription -> its ok to delete
+
+ @api.multi
+ def set_ics_event(self, ics_file, partner):
+ for event in Calendar.from_ical(ics_file).walk('vevent'):
+ #~ if not event.get('uid'):
+ #~ event.add('uid',reduce(lambda x,y: x ^ y, map(ord, str(event.get('dtstart') and event.get('dtstart').dt or '' + event.get('summary') + event.get('dtend') and event.get('dtend').dt or ''))) % 1024)
+
+ summary = ''
+ description = unicode(event.get('description', ''))
+ if unicode(event.get('summary')) and len(unicode(event.get('summary'))) < 35:
+ summary = unicode(event.get('summary'))
+ elif len(unicode(event.get('summary'))) >= 35:
+ summary = unicode(event.get('summary'))[:35]
+ if not event.get('description'):
+ description = unicode(event.get('summary'))
+
+ record = {r[1]:r[2] for r in [ ('dtstart','start_date',event.get('dtstart') and event.get('dtstart').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
+ ('dtend','stop_date',event.get('dtend') and event.get('dtend').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
+ #~ ('dtstamp','start_datetime',event.get('dtstamp') and event.get('dtstamp').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
+ #~ ('description','description',description),
+ ('duration','duration',event.get('duration')),
+ ('location','location',event.get('location') and unicode(event.get('location')) or partner.ics_location),
+ ('class','class',event.get('class') and str(event.get('class')) or partner.ics_class),
+ ('summary','name',summary),
+ ('rrule', 'rrule',event.get('rrule') and event.get('rrule').to_ical() or None),
+ ] if event.get(r[0])}
+
+ partner_ids = self.env['res.partner'].get_attendee_ids(event)
+ #~ raise Warning(partner_ids)
+ if partner_ids:
+ partner_ids.append(partner.id)
+ else:
+ partner_ids = [partner.id]
+
+ record['partner_ids'] = [(6,0,[partner_ids])]
+ #~ record['partner_ids'] = [(6,0,self.env['res.partner'].get_attendee_ids(event)[0] and self.env['res.partner'].get_attendee_ids(event)[0].append(partner.id) or [partner.id])]
+ #~ raise Warning(record['partner_ids'])
+ #~ record['attendee_ids'] = [(6,0,[attendee])]
+ record['ics_subscription'] = True
+ record['start'] = record.get('start_date')
+ record['stop'] = record.get('stop_date') or record.get('start')
+ record['description'] = description
+ record['show_as'] = partner.ics_show_as
+ record['allday'] = partner.ics_allday
+ #~ record['rrule'] = event.get('rrule').to_ical()
+ #~ raise Warning(record['rrule_type'].to_ical)
+
+ tmpStart = datetime.time(datetime.fromtimestamp(mktime(strptime(record['start'], DEFAULT_SERVER_DATETIME_FORMAT))))
+ tmpStop = datetime.fromtimestamp(mktime(strptime(record['stop'], DEFAULT_SERVER_DATETIME_FORMAT)))
+
+ if tmpStart == time(0,0,0) and tmpStart == datetime.time(tmpStop):
+ record['allday'] = True
+
+ if not record.get('stop_date'):
+ record['allday'] = True
+ record['stop_date'] = record['start_date']
+ elif record.get('stop_date') and record['allday']:
+ record['stop_date'] = vDatetime(tmpStop - timedelta(hours=24)).dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ record['stop'] = record['stop_date']
+ _logger.error('ICS %s' % record)
+ self.env['calendar.event'].create(record)
+ #~ event_id = self.env['calendar.event'].create(record)
+#~
+ #~ attendee_values = self.env['res.partner'].get_attendee_ids(event)
+ #~ for i in range(len(attendee_values[0])):
+ #~ self.env['calendar.attendee'].create({
+ #~ 'event_id': event_id.id,
+ #~ 'partner_id': attendee_values[0][i],
+ #~ 'email': attendee_values[1][i],
+ #~ })
+
+ #~ 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="Status of the attendee's participation"),
+ #~ 'cn': fields.function(_compute_data, string='Common name', type="char", multi='cn', store=True),
+ #~ 'partner_id': fields.many2one('res.partner', 'Contact', readonly="True"),
+ #~ 'email': fields.char('Email', help="Email of Invited Person"),
+ #~ 'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
+ #~ 'access_token': fields.char('Invitation Token'),
+ #~ 'event_id': fields.many2one('calendar.event', 'Meeting linked', ondelete='cascade'),
+
+ @api.multi
+ def get_ics_event(self):
+ event = self[0]
+ ics = Event()
+ ics = self.env['calendar.attendee'].get_ics_file(event)
+ calendar = Calendar()
+ date_format = DEFAULT_SERVER_DATETIME_FORMAT
+
+
+ #~ for t in ics_record:
+ #~ ics[t[2]] = eval(t[3])
+ #~
+ #~ foo = {ics[t[2]]: event.read([t[1]]) for t in ics_record}
+ #~
+ #~
+ #~ ics['uid'] = event.id
+ #~ ics['allday'] = event.allday
+ #~
+ #~ if ics['allday']:
+ #~ date_format = DEFAULT_SERVER_DATE_FORMAT
+ #~
+ #~ ics['dtstart'] = vDatetime(datetime.fromtimestamp(mktime(strptime(event.start_date, date_format))))
+ #~ ics['dtend'] = vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop_date, date_format))))
+ #~ ics['summary'] = event.name
+ #~ ics['description'] = event.description
+ #~ ics['class'] = event.read(['class'])
+
+ #~ calendar.add_component(ics)
+ #~ raise Warning(calendar.to_ical())
+ return ics
+
+
+ @api.multi
+ def get_ics_file(self, events_exported, partner):
+ """
+ Returns iCalendar file for the event invitation.
+ @param event: event object (browse record)
+ @return: .ics file content
+ """
+ ics = Event()
+ event = self[0]
+
+ #~ raise Warning(self.env.cr.dbname)
+ #~ The method below needs som proper rewriting to avoid overusing libraries.
+ def ics_datetime(idate, allday=False):
+ if idate:
+ if allday:
+ return str(vDatetime(datetime.fromtimestamp(mktime(strptime(idate, DEFAULT_SERVER_DATETIME_FORMAT)))).to_ical())[:8]
+ else:
+ return vDatetime(datetime.fromtimestamp(mktime(strptime(idate, DEFAULT_SERVER_DATETIME_FORMAT)))).to_ical() + 'Z'
+ return False
+
+ #~ try:
+ #~ # FIXME: why isn't this in CalDAV?
+ #~ import vobject
+ #~ except ImportError:
+ #~ return res
+
+ #~ cal = vobject.iCalendar()
+
+ #~ event = cal.add('vevent')
+ if not event.start or not event.stop:
+ raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
+ ics['summary'] = event.name
+ if event.description:
+ ics['description'] = event.description
+ if event.location:
+ ics['location'] = event.location
+ if event.rrule:
+ ics['rrule'] = event.rrule
+ #~ ics.add('rrule', str(event.rrule), encode=0)
+ #~ raise Warning(ics['rrule'])
+
+ if event.alarm_ids:
+ for alarm in event.alarm_ids:
+ valarm = ics.add('valarm')
+ interval = alarm.interval
+ duration = alarm.duration
+ trigger = valarm.add('TRIGGER')
+ trigger.params['related'] = ["START"]
+ if interval == 'days':
+ delta = timedelta(days=duration)
+ elif interval == 'hours':
+ delta = timedelta(hours=duration)
+ elif interval == 'minutes':
+ delta = timedelta(minutes=duration)
+ trigger.value = delta
+ valarm.add('DESCRIPTION').value = alarm.name or 'Odoo'
+ if event.attendee_ids:
+ for attendee in event.attendee_ids:
+ attendee_add = ics.get('attendee')
+ attendee_add = attendee.cn and ('CN=' + attendee.cn) or ''
+ if attendee.cn and attendee.email:
+ attendee_add += ':'
+ attendee_add += attendee.email and ('MAILTO:' + attendee.email) or ''
+
+ ics.add('attendee', attendee_add, encode=0)
+
+ if events_exported:
+ event_not_found = True
+
+ for event_comparison in events_exported:
+ #~ raise Warning('event_comparison = %s ics = %s' % (event_comparison, ics))
+ if str(ics) == event_comparison:
+ event_not_found = False
+ break
+
+ if event_not_found:
+ events_exported.append(str(ics))
+
+ ics['uid'] = '%s@%s-%s' % (event.id, self.env.cr.dbname, partner.id)
+ ics['created'] = ics_datetime(strftime(DEFAULT_SERVER_DATETIME_FORMAT))
+ tmpStart = ics_datetime(event.start, event.allday)
+ tmpEnd = ics_datetime(event.stop, event.allday)
+
+ if event.allday:
+ ics['dtstart;value=date'] = tmpStart
+ else:
+ ics['dtstart'] = tmpStart
+
+ if tmpStart != tmpEnd or not event.allday:
+ if event.allday:
+ ics['dtend;value=date'] = str(vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(hours=24)).to_ical())[:8]
+ else:
+ ics['dtend'] = tmpEnd
+
+ return [ics, events_exported]
+
+ else:
+ events_exported.append(str(ics))
+
+ ics['uid'] = '%s@%s-%s' % (event.id, self.env.cr.dbname, partner.id)
+ ics['created'] = ics_datetime(strftime(DEFAULT_SERVER_DATETIME_FORMAT))
+ tmpStart = ics_datetime(event.start, event.allday)
+ tmpEnd = ics_datetime(event.stop, event.allday)
+
+ if event.allday:
+ ics['dtstart;value=date'] = tmpStart
+ else:
+ ics['dtstart'] = tmpStart
+
+ if tmpStart != tmpEnd or not event.allday:
+ if event.allday:
+ ics['dtend;value=date'] = str(vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(hours=24)).to_ical())[:8]
+ else:
+ ics['dtend'] = tmpEnd
+
+ return [ics, events_exported]
+
+ @api.multi
+ def get_ics_freebusy(self):
+ """
+ Returns iCalendar file for the event invitation.
+ @param event: event object (browse record)
+ @return: .ics file content
+ """
+ #~ ics = FreeBusy()
+ event = self[0]
+
+ def ics_datetime(idate, iallday=False):
+ if idate:
+ return vDatetime(idate).to_ical()
+ return False
+
+ if not event.start or not event.stop:
+ raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
+
+ allday = event.allday
+ event_start = datetime.fromtimestamp(mktime(strptime(event.start, DEFAULT_SERVER_DATETIME_FORMAT)))
+ event_stop = datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT)))
+
+ if allday:
+ event_stop += timedelta(hours=23, minutes=59, seconds=59)
+
+ return '%s/%s' % (ics_datetime(event_start, allday), ics_datetime(event_stop, allday))
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/calendar_ics/calendar.pyc b/calendar_ics/calendar.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..926898dd89cd025da0b9b0b9bcff585938f44f09
GIT binary patch
literal 7876
zcmdT}O>7*;m44Md9CC)kfALQerIBnZW5=e9{6nD(%MxV}wrHbC|6~wjFq&>kJ(`{w
zcJKR^To
zAvwjWdatTpz4z+9uWJ1NnJRyG`Va55WcV|N|F7X=4~P6S~r86$cgw!V_DM`H~Nm=S;M=MBYQj$rjqpV21BFU80ryOle
zI#ZHNOMP0B8L7`mGAs32M=MHaPLg@4&r7l(^##{EE}e5yKc{j|sGN&ZUv#vRbe1Gp
zmiqFDcSY(e60JykRig9q1bez5N7r<8SvnUbS(EyjB$uRqNs`M_zbr{r>QyoCch{s4
zU6Ds+Noxi_QAxr{&hULBT_YbH&FUueDpT^aRxIz9#+_SxTaCMK2lsC6WtW~#
z-rK&Hv+TGHa{Y%{)^{!LCXEgTk}C+ddHG@~PL9Y)o<_muOV
zLf$i(_l)H|6$y50G?qOp)rLx?{t-s|%|Rz?Q8HTp96qeu0<{154}K=nHgaqzL))W-
zsNDJRxBd?`6rA`1*Zd4jklv@bPw;2tq;RIcz#jai|0uB2DSzG%QaC1$U|ukcX3MEq
zq8t9nfn$>X{wV`7XBC4-!eJTvG(O0B@O$Zs{6O@87UfgyZCt{MeC#--@72t3Ds8rl
z(jMm_1Zf{TM~Eor{3Yf8Am`WS7x^a{Qic<1Y~dso{tY`dfTTY$ry9{7EZ6_3IrgMo
z(sic<(PcPfO11o-27%yg4~P7>4w=*;Fx9ji`&yroa3*J-(cu+uI98i&EGp8U@!+SB
z@WHs;!E`5MatxbKOE@d5ZJmI
ze>x?UgvGOq(q5DB0_R@B7&ElxMcDEZJK1-zD(}PQyR|h$gB?vphc0ZOE!iZBFtV*Q
zMndRyHI~>xk|3bQ&w>s2})gBw2UduH&qSa|ys|mQaMm5J;$1Ej&5HR3K3B}DnK2i3!s`s*)@@CMU!?+hv&KZps^i5jkHa>O}
z1wsYG0b&JE$P38Cl
zP01|bQ(RU6#}i0`YVcp-U_-t6BUJ*Hsro)~IlMqjSFv9eq|UZ4m2{6PYy+ef3Fi=%
zS#e0r)7uZM0)}zI2jDBFT%gqSW9>ykL~qe0I1oyb{zwTWC5(>1Qd3SeUZBSle2%LErw!t9I6w47jaKxHs!GCe61R}oT_1;7MwY7Xb_4X;E-cl?w34_CJR@Bnt-t|YFVMYXUxIB;J%B&
zNWh=^Kr<)P^7utI?|gVwPG%%q=0FH{?DTNcg9m}>or9Ym{@y>Hmh`6u@V9}ca$c|-
zz!Z8102Ywqd1+se_C({%ub+KfKD{w
z%%e_dUhC=qddFbE;0y32c$I5h#7wBo$s=Fvitl(U>Cv#3c6>;jRVBM3?W>YKC)xAE
zB`8pi2I(_Ex@+{AWysiGXS6{jyd+hwd093OFeijTqw1U)QW|-HK-4{N{?^J_Ec{vJ
ze7%q>=bwkQ^oNCKrX0-qbmfFs5UH;sV%Z;~C|8F+L6i;BuC2zm^Se58V-=ybnmvrF
z8U=AvKaBB60r0so8u%JgXESjOH->z@`)#~=RBQLs-bXg7x-|O2>5x2#CAh`n6q@Mc&$rO0sP1mFV}~y_%z-gs
zYOsOYGfY}so0&9!S^5RqilD_5@%t6;y0MgW_!M=;ejSawacZ;bQEyOv*gTA?S+8pQ
zQ7hg*Qmb>SYHwfbXKa6pl7e;25pWZVmkyhq=I{}0FW7$Ljjcd;zq@xU*i)F5MjcG)
zU?32$4X$%2&6~vCK?Zz-%weiE|IV9c-_9XZeLz^FM5MG)CC$__-%Sdl*pm;7crsGtX#{5LFeZ*qLm&
zB;8k=u_uXXeCJO~*
z%IRQpc%QeR(@TPS>mPS_dU}nj47O0{)2D_EVA#ifAn_;+-XQfJ3%$DRk&mM5mVjv8#&N~Tk
z{8l%7c4sem3zPl~ANv^!884Y~p)z+4D18b@aW?-HSf4?wgmM;$eSY*Q0j)dgMf6UY
zs<#F#U-YKDd7Rw|#r4;KI~UEOR|1wVd&Hn`f~ByYK%OFe
zzI6gxD6YqwW5p^AAwW&vqyytY2sR2GEJfuDuoS_ysCNK;IK_1lzRt{xkc{`WJel)h
z@(T>OKb&Pi*!Cs;H^L2=7a$ji*1ZPujSmkx;(rtGUx>#*oVaQrabf@#U|k2JzVFG>
zZjJZCzoX2?6Q`Mtv4EKk4`o_m;sQJa71?c9UsrbYS;n0~p0|MUMqgqAPN7jPcK7FJ
z=-ND|UxFv;a|Bb#>@!Ov4F2&lilELKUyF1T7T4}>Xf30|y1l+`Yx-94`S2Rt=fD;V
zhDsNoCRlq~Cgu^)M|q7;rx8epX|8e6!adaJmpc3wp~2^xXQ#~3D~aBC@fFE^d_}TG
z<(`9lGEw#_V~83!;a5-=ac|e1YYu2M7?2wcO(%^8zOKUC6q?*}Bkn%L!&DaV#H$Kl
z@AW!Sv#Tx=yola_o~H3O!FLaF@Fx4-VZqoHe2n6BpIZBCUowIv%t?%)7iR{ud2fDa
zzB)gst)o}P?BQ)FO8c~|sPHPL8dQ-$|0w%7ASA$Rt;mpj!+qZd6lw#yNWd5uFk`r9
zBidTuj@%;=^M&RyeOk%q$eH1-;bt2oXV^>@isyje5rRm_a
+
+
+
+
+
+
+ Demo meeting about meat
+ Meeting to discuss project plan and hash out the details of implementation.
+
+
+
+
+
+ open
+
+
+
+
+
+
+ Demo Kickoff
+ Weekend at burneys
+
+
+
+
+
+ open
+
+
+
+
+
+
+ Demo Bring the meat.
+ All you can eat buffe.
+
+
+
+
+
+ open
+
+
+
+
+
+
+ Demo Trash the meat grinder
+ Bring your own hammers and tools
+ BurgerTown, 31 butcherstreet
+
+
+
+
+
+ open
+
+
+
+
+
+
+ Demo Trash the meat grinder reunion!
+ Bring your own hammers and tools AND meat this time
+ BurgerTown, 31 butcherstreet
+
+
+
+
+
+ open
+
+
+
diff --git a/calendar_ics/calendar_view.xml b/calendar_ics/calendar_view.xml
new file mode 100644
index 0000000..b8eaa0b
--- /dev/null
+++ b/calendar_ics/calendar_view.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+ Calendar - ics url
+ calendar.ics
+
+
+
+
+
+
+
+
+
+ Calendar ics-url
+ calendar.ics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Calendar ics Search
+ calendar.ics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Calendar ics
+ calendar.ics
+ tree,form
+
+
+
+
+ Click to schedule a new Calendar ics url.
+
+ The calendar events in the url updates the calendar.
+
+
+
+
+
+
+
+ tree
+
+
+
+
+
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar_ics/res_partner - Copie.py b/calendar_ics/res_partner - Copie.py
new file mode 100644
index 0000000..6187b99
--- /dev/null
+++ b/calendar_ics/res_partner - Copie.py
@@ -0,0 +1,287 @@
+from openerp import models, fields, api, _
+from pytz import timezone
+from openerp.exceptions import except_orm, Warning, RedirectWarning
+from datetime import datetime, timedelta, time
+from time import strptime, mktime, strftime
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+import re
+
+from openerp import http
+from openerp.http import request
+
+import logging
+_logger = logging.getLogger(__name__)
+
+#Debuggger package
+#import pdb
+## APPELER "pdb.set_trace()" pour faire un point de debuggage qu'on peut piloter ensuite depuis la console
+
+try:
+ from icalendar import Calendar, Event, vDatetime, FreeBusy
+except ImportError:
+ raise Warning('icalendar library missing, pip install icalendar')
+
+try:
+ import urllib2
+except ImportError:
+ raise Warning('urllib2 library missing, pip install urllib2')
+
+class res_partner_icalendar(http.Controller):
+# http://partner//calendar/[private.ics|freebusy.ics|public.ics]
+ #~ simple_blog_list = request.env['blog.post'].sudo().search([('blog_id', '=', simple_blog.id)], order='message_last_post desc')
+
+ #~ @http.route(['/partner//calendar/private.ics'], type='http', auth="public", website=True)
+ #~ def icalendar_private(self, partner=False, **post):
+ #~ if partner:
+ #~ document = partner.sudo().get_ics_calendar(type='private').to_ical()
+ #~ return request.make_response(
+ #~ headers=[('WWW-Authenticate', 'Basic realm="MaxRealm"')]
+ #~ )
+ #~ else:
+ #~ raise Warning("Private failed")
+ #~ pass # Some error page
+
+ @http.route(['/partner//calendar/freebusy.ics'], type='http', auth="public", website=True)
+ def icalendar_freebusy(self, partner=False, **post):
+ if partner:
+ #~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
+ #~ return partner.get_ics_calendar(type='public').to_ical()
+ document = partner.sudo().get_ics_calendar(type='freebusy').to_ical()
+ return request.make_response(
+ document,
+ headers=[
+ ('Content-Disposition', 'attachment; filename="freebusy.ifb"'),
+ ('Content-Type', 'text/calendar'),
+ ('Content-Length', len(document)),
+ ]
+ )
+ else:
+ raise Warning()
+ pass # Some error page
+
+ #@http.route(['/partner//calendar/public.ics'], type='http', auth="public", website=True)
+ @http.route(['/calendar-ics///public.ics'], auth="public")
+ def icalendar_public(self, partner_id, **post):
+ #pdb.set_trace()
+
+ partner = http.request.env['res.partner'].sudo().search([('id','=',partner_id)])
+ if partner:
+ #~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
+ #~ return partner.sudo().get_ics_calendar(type='public')
+ document = partner.sudo().get_ics_calendar(type='public')
+ return request.make_response(
+ document,
+ headers=[
+ ('Content-Disposition', 'attachment; filename="public.ics"'),
+ ('Content-Type', 'text/calendar'),
+ ('Content-Length', len(document)),
+ ]
+ )
+ else:
+ raise Warning("Public failed")
+ pass # Some error page
+
+class res_partner(models.Model):
+ _inherit = "res.partner"
+
+ ics_url = fields.Char(string='Url',required=False)
+ ics_active = fields.Boolean(string='Active',default=False)
+ ics_nextdate = fields.Datetime(string="Next")
+ #~ ics_frequency = fields.Integer(string="Frequency",default=60, help="Frequency in minutes, 60 = every hour, 1440 once per day, 10080 week, 43920 month, 131760 quarterly")
+ ics_frequency = fields.Selection([('15', 'Every fifteen minutes'), ('60', 'Every hour'), ('360', 'Four times a day'), ('1440', 'Once per day'), ('10080', 'Once every week'), ('43920', 'Once every month'), ('131760', 'Once every third month')], string='Frequency', default='60')
+ ics_class = fields.Selection([('private', 'Private'), ('public', 'Public'), ('confidential', 'Public for Employees')], string='Privacy', default='private')
+ ics_show_as = fields.Selection([('free', 'Free'), ('busy', 'Busy')], string='Show Time as')
+ ics_location = fields.Char(string='Location', help="Location of Event")
+ ics_allday = fields.Boolean(string='All Day')
+ ics_url_field = fields.Char(string='URL to the calendar', compute='create_ics_url')
+
+ @api.one
+ def create_ics_url(self):
+ self.ics_url_field = '%s/partner/%s/calendar/public.ics' % (self.env['ir.config_parameter'].sudo().get_param('web.base.url'), self.id)
+
+ @api.v7
+ def ics_cron_job(self, cr, uid, context=None):
+ for ics in self.pool.get('res.partner').browse(cr, uid, self.pool.get('res.partner').search(cr, uid, [('ics_active','=',True)])):
+ if (datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) < datetime.today()):
+ ics.get_ics_events()
+ ics.ics_nextdate = datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(minutes=int(ics.ics_frequency))
+ _logger.info('Cron job for %s done' % ics.name)
+
+ @api.one
+ def rm_ics_events(self):
+ self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
+
+ @api.one
+ def get_ics_events(self):
+ if (self.ics_url):
+ try:
+ res = urllib2.urlopen(self.ics_url).read()
+ except urllib2.HTTPError as e:
+ _logger.error('ICS a %s %s' % (e.code, e.reason))
+ return False
+ except urllib2.URLError as e:
+ _logger.error('ICS c %s %s' % (e.code, e.reason))
+ return False
+ _logger.error('ICS %s' % res)
+
+ self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
+ #~ for event in self.env['calendar.event'].search([('ics_id','=',self.id)]):
+ #~ event.unlink()
+
+ self.env['calendar.event'].set_ics_event(res, self)
+
+ @api.multi
+ def get_attendee_ids(self, event):
+ #~ raise Warning('get_attendee_ids run')
+ partner_ids = []
+ #~ attendee_mails = []
+ event_attendee_list = event.get('attendee')
+ if event_attendee_list:
+ if not (type(event_attendee_list) is list):
+ event_attendee_list = [event_attendee_list]
+
+ for vAttendee in event_attendee_list:
+ _logger.error('Attendee found %s' % vAttendee)
+ attendee_mailto = re.search('(:MAILTO:)([a-zA-Z0-9_@.\-]*)', vAttendee)
+ attendee_cn = re.search('(CN=)([^:]*)', vAttendee)
+ if attendee_mailto:
+ attendee_mailto = attendee_mailto.group(2)
+ if attendee_cn:
+ attendee_cn = attendee_cn.group(2)
+ elif not attendee_mailto and not attendee_cn:
+ attendee_cn = vAttendee
+ _logger.error('Attendee found %s' % attendee_cn)
+
+ #~ raise Warning('%s %s' % (vAttendee, attendee_cn))
+ if attendee_mailto:
+ partner_result = self.env['res.partner'].search([('email','=',attendee_mailto)])
+
+ if not partner_result:
+ partner_id = self.env['res.partner'].create({
+ 'email': attendee_mailto,
+ 'name': attendee_cn or attendee_mailto,
+ })
+ else:
+ partner_id = partner_result[0]
+ elif attendee_cn:
+ partner_result = self.env['res.partner'].search([('name','=',attendee_cn)])
+
+ if not partner_result:
+ partner_id = self.env['res.partner'].create({
+ 'name': attendee_cn or attendee_mailto,
+ })
+ else:
+ partner_id = partner_result[0]
+
+ #~ self.env['calendar.attendee'].create({
+ #~ 'event_id': event_id.id,
+ #~ 'partner_id': partner_id.id or None,
+ #~ 'email': attendee_mailto or '',
+ #~ })
+
+ partner_ids.append(partner_id.id or None)
+ #~ attendee_mails.append(attendee_mailto or '')
+
+ return partner_ids
+ #~ return [partner_ids, attendee_mails]
+
+ def get_ics_calendar(self,type='public'):
+ calendar = Calendar()
+ if type == 'private':
+ for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
+ calendar.add_component(event.get_ics_file())
+ elif type == 'freebusy':
+ fc = FreeBusy()
+
+ organizer_add = self.name and ('CN=' + self.name) or ''
+ if self.name and self.email:
+ organizer_add += ':'
+ organizer_add += self.email and ('MAILTO:' + self.email) or ''
+ fc['organizer'] = organizer_add
+
+ for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
+ fc.add('freebusy', event.get_ics_freebusy(), encode=0)
+ #~ fb.add_component(fc)
+ return fc
+ elif type == 'public':
+ #~ raise Warning(self.env['calendar.event'].search([('partner_ids','in',self.id)]))
+ exported_ics = []
+ for event in reversed(self.env['calendar.event'].search([('partner_ids','in',self.id)])):
+ temporary_ics = event.get_ics_file(exported_ics, self)
+ if temporary_ics:
+ exported_ics.append(temporary_ics[1])
+ #~ temporary_ics[0].add('url', self.ics_url_field, encode=0)
+ calendar.add_component(temporary_ics[0])
+ #~ calendar.add('vevent', temporary_ics[0], encode=0)
+
+ #~ for attendees in event.attendee_ids:
+ #~ calendar.add('attendee', event.get_event_attendees(attendees), encode=0)
+
+ tmpCalendar = calendar.to_ical()
+ tmpSearch = re.findall('RRULE:[^\n]*\\;[^\n]*', tmpCalendar)
+
+ for counter in range(len(tmpSearch)):
+ tmpCalendar = tmpCalendar.replace(tmpSearch[counter], tmpSearch[counter].replace('\\;', ';', tmpSearch[counter].count('\\;')))
+
+ #~ raise Warning(tmpCalendar)
+
+ return tmpCalendar
+
+ @api.multi
+ def ics_mail(self,context=None):
+ #raise Warning('%s | %s' % (ids,picking))
+ compose_form = self.env.ref('mail.email_compose_message_wizard_form', False)
+ #~ raise Warning("%s compose_form" % compose_form)
+ mail= self.env['mail.compose.message'].create({
+ 'template_id':self.env.ref('calendar_ics.email_ics_url').id,
+ 'model': 'res.partner',
+ 'res_id': self.id,
+ })
+ mail.write(mail.onchange_template_id( # gets defaults from template
+ self.env.ref('calendar_ics.email_ics_url').id, mail.composition_mode,
+ mail.model, mail.res_id,context=context
+ )['value'])
+ return {
+ 'name': _('Compose Email'),
+ 'type': 'ir.actions.act_window',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'mail.compose.message',
+ 'res_id':mail.id,
+ 'views': [(compose_form.id, 'form')],
+ 'view_id': compose_form.id,
+ 'target': 'new',
+ }
+
+ return {'value': {'partner_id': False}, 'warning': {'title': 'Hello', 'message': 'Hejsan'}}
+
+
+ #~ ics['freebusy'] = '%s/%s' % (ics_datetime(event.start, event.allday), ics_datetime(event.stop, event.allday))
+
+ # vtodo, vjournal, vfreebusy
+
+
+ #~ eventprop = *(
+
+ #~ ; the following are optional,
+ #~ ; but MUST NOT occur more than once
+
+ #~ class / created / description / dtstart / geo /
+ #~ last-mod / location / organizer / priority /
+ #~ dtstamp / seq / status / summary / transp /
+ #~ uid / url / recurid /
+
+ #~ ; either 'dtend' or 'duration' may appear in
+ #~ ; a 'eventprop', but 'dtend' and 'duration'
+ #~ ; MUST NOT occur in the same 'eventprop'
+
+ #~ dtend / duration /
+
+ #~ ; the following are optional,
+ #~ ; and MAY occur more than once
+
+ #~ attach / attendee / categories / comment /
+ #~ contact / exdate / exrule / rstatus / related /
+ #~ resources / rdate / rrule / x-prop
+
+ #~ )
diff --git a/calendar_ics/res_partner.py b/calendar_ics/res_partner.py
new file mode 100644
index 0000000..6ac6e43
--- /dev/null
+++ b/calendar_ics/res_partner.py
@@ -0,0 +1,279 @@
+from openerp import models, fields, api, _
+from pytz import timezone
+from openerp.exceptions import except_orm, Warning, RedirectWarning
+from datetime import datetime, timedelta, time
+from time import strptime, mktime, strftime
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+import re
+
+from openerp import http
+from openerp.http import request
+
+import logging
+_logger = logging.getLogger(__name__)
+
+try:
+ from icalendar import Calendar, Event, vDatetime, FreeBusy
+except ImportError:
+ raise Warning('icalendar library missing, pip install icalendar')
+
+try:
+ import urllib2
+except ImportError:
+ raise Warning('urllib2 library missing, pip install urllib2')
+
+class res_partner_icalendar(http.Controller):
+# http://partner//calendar/[private.ics|freebusy.ics|public.ics]
+ #~ simple_blog_list = request.env['blog.post'].sudo().search([('blog_id', '=', simple_blog.id)], order='message_last_post desc')
+
+ #~ @http.route(['/partner//calendar/private.ics'], type='http', auth="public", website=True)
+ #~ def icalendar_private(self, partner=False, **post):
+ #~ if partner:
+ #~ document = partner.sudo().get_ics_calendar(type='private').to_ical()
+ #~ return request.make_response(
+ #~ headers=[('WWW-Authenticate', 'Basic realm="MaxRealm"')]
+ #~ )
+ #~ else:
+ #~ raise Warning("Private failed")
+ #~ pass # Some error page
+
+ @http.route(['/partner//calendar/freebusy.ics'], type='http', auth="public", website=True)
+ def icalendar_freebusy(self, partner=False, **post):
+ if partner:
+ #~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
+ #~ return partner.get_ics_calendar(type='public').to_ical()
+ document = partner.sudo().get_ics_calendar(type='freebusy').to_ical()
+ return request.make_response(
+ document,
+ headers=[
+ ('Content-Disposition', 'attachment; filename="freebusy.ifb"'),
+ ('Content-Type', 'text/calendar'),
+ ('Content-Length', len(document)),
+ ]
+ )
+ else:
+ raise Warning()
+ pass # Some error page
+
+ @http.route(['/partner//calendar/public.ics'], type='http', auth="public", website=True)
+ def icalendar_public(self, partner=False, **post):
+ if partner:
+ #~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
+ #~ return partner.sudo().get_ics_calendar(type='public')
+ document = partner.sudo().get_ics_calendar(type='public')
+ return request.make_response(
+ document,
+ headers=[
+ ('Content-Disposition', 'attachment; filename="public.ics"'),
+ ('Content-Type', 'text/calendar'),
+ ('Content-Length', len(document)),
+ ]
+ )
+ else:
+ raise Warning("Public failed")
+ pass # Some error page
+
+class res_partner(models.Model):
+ _inherit = "res.partner"
+
+ ics_url = fields.Char(string='Url',required=False)
+ ics_active = fields.Boolean(string='Active',default=False)
+ ics_nextdate = fields.Datetime(string="Next")
+ #~ ics_frequency = fields.Integer(string="Frequency",default=60, help="Frequency in minutes, 60 = every hour, 1440 once per day, 10080 week, 43920 month, 131760 quarterly")
+ ics_frequency = fields.Selection([('15', 'Every fifteen minutes'), ('60', 'Every hour'), ('360', 'Four times a day'), ('1440', 'Once per day'), ('10080', 'Once every week'), ('43920', 'Once every month'), ('131760', 'Once every third month')], string='Frequency', default='60')
+ ics_class = fields.Selection([('private', 'Private'), ('public', 'Public'), ('confidential', 'Public for Employees')], string='Privacy', default='private')
+ ics_show_as = fields.Selection([('free', 'Free'), ('busy', 'Busy')], string='Show Time as')
+ ics_location = fields.Char(string='Location', help="Location of Event")
+ ics_allday = fields.Boolean(string='All Day')
+ ics_url_field = fields.Char(string='URL to the calendar', compute='create_ics_url')
+
+ @api.one
+ def create_ics_url(self):
+ self.ics_url_field = '%s/partner/%s/calendar/public.ics' % (self.env['ir.config_parameter'].sudo().get_param('web.base.url'), self.id)
+
+ @api.v7
+ def ics_cron_job(self, cr, uid, context=None):
+ for ics in self.pool.get('res.partner').browse(cr, uid, self.pool.get('res.partner').search(cr, uid, [('ics_active','=',True)])):
+ if (datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) < datetime.today()):
+ ics.get_ics_events()
+ ics.ics_nextdate = datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(minutes=int(ics.ics_frequency))
+ _logger.info('Cron job for %s done' % ics.name)
+
+ @api.one
+ def rm_ics_events(self):
+ self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
+
+ @api.one
+ def get_ics_events(self):
+ if (self.ics_url):
+ try:
+ res = urllib2.urlopen(self.ics_url).read()
+ except urllib2.HTTPError as e:
+ _logger.error('ICS a %s %s' % (e.code, e.reason))
+ return False
+ except urllib2.URLError as e:
+ _logger.error('ICS c %s %s' % (e.code, e.reason))
+ return False
+ _logger.error('ICS %s' % res)
+
+ self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
+ #~ for event in self.env['calendar.event'].search([('ics_id','=',self.id)]):
+ #~ event.unlink()
+
+ self.env['calendar.event'].set_ics_event(res, self)
+
+ @api.multi
+ def get_attendee_ids(self, event):
+ #~ raise Warning('get_attendee_ids run')
+ partner_ids = []
+ #~ attendee_mails = []
+ event_attendee_list = event.get('attendee')
+ if event_attendee_list:
+ if not (type(event_attendee_list) is list):
+ event_attendee_list = [event_attendee_list]
+
+ for vAttendee in event_attendee_list:
+ _logger.error('Attendee found %s' % vAttendee)
+ attendee_mailto = re.search('(:MAILTO:)([a-zA-Z0-9_@.\-]*)', vAttendee)
+ attendee_cn = re.search('(CN=)([^:]*)', vAttendee)
+ if attendee_mailto:
+ attendee_mailto = attendee_mailto.group(2)
+ if attendee_cn:
+ attendee_cn = attendee_cn.group(2)
+ elif not attendee_mailto and not attendee_cn:
+ attendee_cn = vAttendee
+ _logger.error('Attendee found %s' % attendee_cn)
+
+ #~ raise Warning('%s %s' % (vAttendee, attendee_cn))
+ if attendee_mailto:
+ partner_result = self.env['res.partner'].search([('email','=',attendee_mailto)])
+
+ if not partner_result:
+ partner_id = self.env['res.partner'].create({
+ 'email': attendee_mailto,
+ 'name': attendee_cn or attendee_mailto,
+ })
+ else:
+ partner_id = partner_result[0]
+ elif attendee_cn:
+ partner_result = self.env['res.partner'].search([('name','=',attendee_cn)])
+
+ if not partner_result:
+ partner_id = self.env['res.partner'].create({
+ 'name': attendee_cn or attendee_mailto,
+ })
+ else:
+ partner_id = partner_result[0]
+
+ #~ self.env['calendar.attendee'].create({
+ #~ 'event_id': event_id.id,
+ #~ 'partner_id': partner_id.id or None,
+ #~ 'email': attendee_mailto or '',
+ #~ })
+
+ partner_ids.append(partner_id.id or None)
+ #~ attendee_mails.append(attendee_mailto or '')
+
+ return partner_ids
+ #~ return [partner_ids, attendee_mails]
+
+ def get_ics_calendar(self,type='public'):
+ calendar = Calendar()
+ if type == 'private':
+ for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
+ calendar.add_component(event.get_ics_file())
+ elif type == 'freebusy':
+ fc = FreeBusy()
+
+ organizer_add = self.name and ('CN=' + self.name) or ''
+ if self.name and self.email:
+ organizer_add += ':'
+ organizer_add += self.email and ('MAILTO:' + self.email) or ''
+ fc['organizer'] = organizer_add
+
+ for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
+ fc.add('freebusy', event.get_ics_freebusy(), encode=0)
+ #~ fb.add_component(fc)
+ return fc
+ elif type == 'public':
+ #~ raise Warning(self.env['calendar.event'].search([('partner_ids','in',self.id)]))
+ exported_ics = []
+ for event in reversed(self.env['calendar.event'].search([('partner_ids','in',self.id)])):
+ temporary_ics = event.get_ics_file(exported_ics, self)
+ if temporary_ics:
+ exported_ics.append(temporary_ics[1])
+ #~ temporary_ics[0].add('url', self.ics_url_field, encode=0)
+ calendar.add_component(temporary_ics[0])
+ #~ calendar.add('vevent', temporary_ics[0], encode=0)
+
+ #~ for attendees in event.attendee_ids:
+ #~ calendar.add('attendee', event.get_event_attendees(attendees), encode=0)
+
+ tmpCalendar = calendar.to_ical()
+ tmpSearch = re.findall('RRULE:[^\n]*\\;[^\n]*', tmpCalendar)
+
+ for counter in range(len(tmpSearch)):
+ tmpCalendar = tmpCalendar.replace(tmpSearch[counter], tmpSearch[counter].replace('\\;', ';', tmpSearch[counter].count('\\;')))
+
+ #~ raise Warning(tmpCalendar)
+
+ return tmpCalendar
+
+ @api.multi
+ def ics_mail(self,context=None):
+ #raise Warning('%s | %s' % (ids,picking))
+ compose_form = self.env.ref('mail.email_compose_message_wizard_form', False)
+ #~ raise Warning("%s compose_form" % compose_form)
+ mail= self.env['mail.compose.message'].create({
+ 'template_id':self.env.ref('calendar_ics.email_ics_url').id,
+ 'model': 'res.partner',
+ 'res_id': self.id,
+ })
+ mail.write(mail.onchange_template_id( # gets defaults from template
+ self.env.ref('calendar_ics.email_ics_url').id, mail.composition_mode,
+ mail.model, mail.res_id,context=context
+ )['value'])
+ return {
+ 'name': _('Compose Email'),
+ 'type': 'ir.actions.act_window',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'mail.compose.message',
+ 'res_id':mail.id,
+ 'views': [(compose_form.id, 'form')],
+ 'view_id': compose_form.id,
+ 'target': 'new',
+ }
+
+ return {'value': {'partner_id': False}, 'warning': {'title': 'Hello', 'message': 'Hejsan'}}
+
+
+ #~ ics['freebusy'] = '%s/%s' % (ics_datetime(event.start, event.allday), ics_datetime(event.stop, event.allday))
+
+ # vtodo, vjournal, vfreebusy
+
+
+ #~ eventprop = *(
+
+ #~ ; the following are optional,
+ #~ ; but MUST NOT occur more than once
+
+ #~ class / created / description / dtstart / geo /
+ #~ last-mod / location / organizer / priority /
+ #~ dtstamp / seq / status / summary / transp /
+ #~ uid / url / recurid /
+
+ #~ ; either 'dtend' or 'duration' may appear in
+ #~ ; a 'eventprop', but 'dtend' and 'duration'
+ #~ ; MUST NOT occur in the same 'eventprop'
+
+ #~ dtend / duration /
+
+ #~ ; the following are optional,
+ #~ ; and MAY occur more than once
+
+ #~ attach / attendee / categories / comment /
+ #~ contact / exdate / exrule / rstatus / related /
+ #~ resources / rdate / rrule / x-prop
+
+ #~ )
diff --git a/calendar_ics/res_partner.pyc b/calendar_ics/res_partner.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..932c099883a6d4a9936e878e0729cdddf4dc2200
GIT binary patch
literal 9888
zcmcIqTW=gkc0M&T8eT+-7g?03i#?((dE}Ky$rR(lF8~Nuwm4vNX!l
zsYs(Dh7u)-4oIgejjAh`B^r>i8ZouMjOWa4VdJBEY~NnG2wsVr(QuWt0L*dfsInlwnG~QX;wz9
z-wQMBpET=Cvq2_d$G(WWw$Ao!7>Rw}vc0SsC!K5n#fN^<4ZCaE81kMC!o;?+yv{wt
zUIIU}>?s>Uffsi)wCB98!pKjVTa|^|R7yZa~13$^A
z;kTaIZl>?>>}K&s6uO;Q`{`!7onAyCY~_#CqHs0wlkHk3Oj9h;`C2dR)xvI?`B7Bs
zi>2rB&}I@r`u!h&Bp1q#;DN-Z%^s%JwMnzzRUeL=)Tj8Q>qx8+g|;LcWvbg6bO(PW
z2~ey^a6oJYI##v^B&f=7jB0qbkRSL_`N2YdK)mHTH#hwV$y`3Ox$CND^%=}|Hm{pG
zw~*&Po-0;ru8jp;#RATTt<-77cF%g_=t@ieX11=n+S^=>!j|gYmR(K5%(kcy+(*9h
zukcB~M6zQfxyN)vA+k}t@+&bLC4%N|2nkm1GgT+^991K@rntv8TEsS**(G(E??Bi;n-qHlYnYEQeK_gC+0?b_Y4`WNM?f
zKAr1{j)O(abj5?XwaMkHLsB$JKSpj2HYN1u(snZr;`qW=oIHUon)8DIBhB@aIOs1P
zr#ZI=KeN5$%fkYWer|_Sfi;
zdVBlzdP|K}2vWt2+E$jRlg2sKkZRazmZcdeg{yCz1T1s+>mS>$P-u_Ww&A
zRYm?>F#MB4Trn=v3(p)r~>W7<67}w1RMQ14KpptkKj+P)=Nj9zetlNH+
zTJJ2Xymyi8zKQ1c0XyClx}{pBoM(0Hv>BT?Z893lJs@kLs6TWP>YDxp9K*RL7*-HO
ztM<6>n&6IJNeSeT^#kg%oU?NEgIW)>4ZBPOZ9o+%2~1p+;F1LIOK@3&D-!%tf_YhU
zJshFCQ*4w#B6Inx5_}-RhqU+X?WD>~0Y4>B%v@$cf@`t{p9z7}bPHgcY{HaKGb6#<
z61<}m1{3Q~_>4|$e2*j;*}D?dRdPb?q--3P;G7aR@X9x|29vxl!Fz>kJz9wUq7VZc
zbq}5|YQRiUb6kQ8Ma>Bbj!7`fP8uhRR&+a8bbE>(o6b7TcdBsE>S)2YNb1UHe~?6~
ze56KTcY(IwXl3Cut5!O&ZGSV$RO^=Dq+q2)F8wkkO95d5|7nNq%-Sw^P#5Z%s=)lk
zlw{HgtjC*)j&&K;M8|DZ)X4YJnqLe2ZSDNhl`9w3H-6S_*;>yg+CsIzbn)T`7gI7&
zZL&J*mbFh50aq@6_`d6QPiqJM*>Q?XmoHt#u+-u`?b&*m1T`l`mA$RZu-n>po+$~R
zkpR*Se(v&WS#@okfy-!gTXDA?2JluPQ1}LgbK@5$wOgHD6mMIsN52>JPVCbCXa)Eai>RPLZ;D5EZ$b#J2+?yz!iR|9gFxV?F9~YgnSFkavFr|6$;8R
z;fL5zCZ(D}t_jSLN%2jWQrg}#aL|s*&LLaOV$K;xI!m2sn9S;Ou95e`3}&EOTnP}t
z*;PNavzS_)+Mt?byU*0tD_bWw(T7y^!a%7A$qF86>iI`c0BZSn4di~<#ygl#1D}+j
zkWz~;%{fw~bm{&TndkqKFP-D5STL*{sK5?VUDDn9a$fJ~JNCL=CP9A%s#=ztkH3|d
z6>`{(sz9rt7dsW%7~;9@6=<(gd$!^XD)I#O`K}7!h=~pTiN{8HSb#RL$1&|o%uy7Y
z=zd%_CTKO;HYrmW$UMC(_nE*s?-$5=bWFPE?IiA~S;_oP&!hHu
zw0??J&ZP_c#j~nMTcXAzi)nrcf`Z_}x^%PD;|}WBA&!KkwtODQ#rd(Y63r-HTeFEy
zHSD%y&Cr9ZnyR*`Lbjao+k|2gozQZUeb;#_-B*R|ziA5#+r+|tjRDmXOX)Ln!3>)P
z(<<=IWmF}-j*Qbppq$|DpB`CTq7u@tLg|2VD5RdC;2Wt{ssVhhB|Wqh=$_SO)M&$5
zE7bfXA`F&oSsxkJN51{eBN*cc9{IxIJWxxbP~~hun=07Zk$fK!He&6l
z?(85L6Ckj=v%o)gcF%L;YL;-;#-zJ&0krSLw?qBi#pRk$^qxu83b5SD%Umgz(WIUx
zkDWO6@K(|4wV0qwgqN780_cH~T9sRI1rDq^gD6El?g6M3$iRCA>Id$utbBeeN#ew#
zO;&tc7FDW+keKQZ#8W8Rd5X|-z(cx+UZZdxcVBe^W@lF^G@#`GUWNd8uxh&9S1fxE
z(KQ^dq{om*X$VKtlV;MKG8Ih^n2FK{6+LLuSaG!$@k##yTDk_UQy)Wzt$qRLOPnl|
zzc-kv3xNQJPlhDyPUEKosOY-tS?u?*Z5MfPK
zb`D7LXH3cJLFUo(0rtF8mE^CO?$%eOdz6wR$v?6|zbfnl;=5y4-Pr8+nkpp}whCpg
zGWv;_4jOVViJ_p_1Cq|}l^c=}Zvgu>AoCcdciONpB=elwpgjG(!6OI{O{38Db)Klg
z((jIga|p(%es7%L?UlngSXvD5&5sR$g#dDgWoMA6?EMW5DB=F}6M2Z1WyKbq){-hG
zPU?tHf<+P$H}V3!BfG-SdxT<$kJRb;ygy>1F)_j|3e!vh=5=$DwZxi3X2?vGt7fKDHREQ$OqEB`=1Ry99xp4{xp&+a1^W!PGt(fb
z!#lwKq$J5#^8C+LH`SLc?K*M7-o-W
z4E7L>FbnKtK$1Tt3|;3;%O6^F^Il3jhz~sq-9V8*GemLNTvzqd_hq$;wqlD4E`R{3}UTEbs-Ur
zK18mK%N-a4_BSNYKPTJHCS*qgd^+@XdFjl>Bx`qIsPZpx@c=hWD$Hue8pf5ngLa@h
z*tS2Ihv<8`&LHQKcb!^z2+4O@+8z&lf)ZsUuozG)=oTr@f}SdKE2996lQq8^z5w~9
zg9jsqb5(<($7I++bi*+{@4>xW3txRb{P?{`*Yr!N)T3+K@3lJ5%$^F;VC=Fzb-4)c
zHhD~inE(eTn=d#zBkLXm5NfHsP2`kLf1`@2lCGD4nQ|n90(#S#Ugr?qLw0MSRjD&;p{%q1bR)
zsFm==TB&h_vV<@{eWBuD0ZTRSP8{=Wghhbw1{fTPAqIg&XM9}m#e=K|Dv`opBXy1&
zwyt7eZWNoLo|j=_&>zgiJRl0gFc0Vgi25~-FN8KGKo`)38{8opLcBP_gOg}fs~H@I
zH13*@$ow*VD^wrv8BC!P3L;;0OX*pp^jNd%c%7!Fwuzuv
z>aW@6R`|kCf+h~e9X%?msKNoUkX$G|jy?+Aqx$516|7m63F;MTcqe$R+t({Rg)zgq
zVc<2#%4RNxhGO#=uWR~%
zO|OaZy4DYie)q(1HG1os7ufv6Azl?yC)RV(T+Qc^UDrrI<|2|Qvo4V9n%w67j7YB&
zrx9d`H)Vz)-rZ`(d9|8x-le+UQ&9uFb4Yaenqha{Lj63tP}P#fbw6=Ry3Q(kt4|RZ
zvwqjRUp!U(w}SV8HFO!vHo`w@Fre~fQANdQMShwpL1rmMkhzKYGGCD8sE9F>993HP5bkf6P{&33!$0sZ}xA0nrXUkg@zi?r)LXRd>zp1Ksv6
zpj%E*?J2Ktk3q*LOBc;M<^*%*SZT6SHDd#lmC3`CS4ZBfn)IU2+^X4A^tx@5=W6u^uA9w@IL>ENY{7&w@sCu|2~2n&X1KYa*P?Adrs=_
Y6llh{8muwg$)AO}8prpzeotTiZ?wXHPXGV_
literal 0
HcmV?d00001
diff --git a/calendar_ics/res_partner_data.xml b/calendar_ics/res_partner_data.xml
new file mode 100644
index 0000000..7e5bbad
--- /dev/null
+++ b/calendar_ics/res_partner_data.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ ics_url
+ admin@example.com
+
+ Calendar ics url
+ ${(object.email or '')|safe}
+
+
+ Use this url for the ${object.name} calendar:
+ ${object.ics_url_field}
+ ]]>
+
+
+
+ Generate Recurring Calendar updates for Partners
+ 15
+ minutes
+ -1
+
+
+
+
+
+
diff --git a/calendar_ics/res_partner_view.xml b/calendar_ics/res_partner_view.xml
new file mode 100644
index 0000000..4812722
--- /dev/null
+++ b/calendar_ics/res_partner_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ res.partner.ics
+ res.partner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar_ics/security/ir.model.access.csv b/calendar_ics/security/ir.model.access.csv
new file mode 100644
index 0000000..bdd5aa6
--- /dev/null
+++ b/calendar_ics/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
+access_calendar_ics_manager,res.groups,model_calendar_ics,base.group_erp_manager,1,1,1,1
+access_calendar_ics_all,res.groups,model_calendar_ics,,1,0,0,0
diff --git a/google_account/__init__.py b/google_account/__init__.py
new file mode 100644
index 0000000..24a68d8
--- /dev/null
+++ b/google_account/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import google_account
+import controllers
+
+from .google_account import TIMEOUT # noqa
diff --git a/google_account/__openerp__.py b/google_account/__openerp__.py
new file mode 100644
index 0000000..c7f4791
--- /dev/null
+++ b/google_account/__openerp__.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+{
+ 'name': 'Google Users',
+ 'version': '1.0',
+ 'category': 'Tools',
+ 'description': """
+The module adds google user in res user.
+========================================
+""",
+ 'author': 'OpenERP SA',
+ 'website': 'https://www.odoo.com',
+ 'depends': ['base_setup'],
+ 'data': [
+ 'google_account_data.xml',
+ ],
+ 'demo': [],
+ 'installable': True,
+ 'auto_install': False,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/google_account/controllers/__init__.py b/google_account/controllers/__init__.py
new file mode 100644
index 0000000..8ee9bae
--- /dev/null
+++ b/google_account/controllers/__init__.py
@@ -0,0 +1 @@
+import main
diff --git a/google_account/controllers/main.py b/google_account/controllers/main.py
new file mode 100644
index 0000000..2a3a4ae
--- /dev/null
+++ b/google_account/controllers/main.py
@@ -0,0 +1,32 @@
+import simplejson
+import urllib
+import openerp
+from openerp import http
+from openerp.http import request
+import openerp.addons.web.controllers.main as webmain
+from openerp.addons.web.http import SessionExpiredException
+from werkzeug.exceptions import BadRequest
+import werkzeug.utils
+
+class google_auth(http.Controller):
+
+ @http.route('/google_account/authentication', type='http', auth="none")
+ def oauth2callback(self, **kw):
+ """ This route/function is called by Google when user Accept/Refuse the consent of Google """
+
+ state = simplejson.loads(kw['state'])
+ dbname = state.get('d')
+ service = state.get('s')
+ url_return = state.get('f')
+
+ registry = openerp.modules.registry.RegistryManager.get(dbname)
+ with registry.cursor() as cr:
+ if kw.get('code',False):
+ registry.get('google.%s' % service).set_all_tokens(cr,request.session.uid,kw['code'])
+ return werkzeug.utils.redirect(url_return)
+ elif kw.get('error'):
+ return werkzeug.utils.redirect("%s%s%s" % (url_return ,"?error=" , kw.get('error')))
+ else:
+ return werkzeug.utils.redirect("%s%s" % (url_return ,"?error=Unknown_error"))
+
+
diff --git a/google_account/google_account.py b/google_account/google_account.py
new file mode 100644
index 0000000..ea1482d
--- /dev/null
+++ b/google_account/google_account.py
@@ -0,0 +1,189 @@
+# -*- coding: utf-8 -*-
+
+import openerp
+from openerp.http import request
+from openerp.osv import osv
+from openerp import SUPERUSER_ID
+from openerp.tools.translate import _
+from datetime import datetime
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
+
+import werkzeug.urls
+import urllib2
+import simplejson
+
+import logging
+_logger = logging.getLogger(__name__)
+
+TIMEOUT = 20
+
+class google_service(osv.osv_memory):
+ _name = 'google.service'
+
+ def generate_refresh_token(self, cr, uid, service, authorization_code, context=None):
+ ir_config = self.pool['ir.config_parameter']
+ client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service)
+ client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % service)
+ redirect_uri = ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri')
+
+ #Get the Refresh Token From Google And store it in ir.config_parameter
+ headers = {"Content-type": "application/x-www-form-urlencoded"}
+ data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code")
+ data = werkzeug.url_encode(data)
+ try:
+ req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers)
+ content = urllib2.urlopen(req, timeout=TIMEOUT).read()
+ except urllib2.HTTPError:
+ error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired"
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
+
+ content = simplejson.loads(content)
+ return content.get('refresh_token')
+
+ def _get_google_token_uri(self, cr, uid, service, scope, context=None):
+ ir_config = self.pool['ir.config_parameter']
+ params = {
+ 'scope': scope,
+ 'redirect_uri': ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri'),
+ 'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service),
+ 'response_type': 'code',
+ 'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service),
+ }
+ uri = 'https://accounts.google.com/o/oauth2/auth?%s' % werkzeug.url_encode(params)
+ return uri
+
+ # If no scope is passed, we use service by default to get a default scope
+ def _get_authorize_uri(self, cr, uid, from_url, service, scope=False, context=None):
+ """ This method return the url needed to allow this instance of OpenErp to access to the scope of gmail specified as parameters """
+ state_obj = dict(d=cr.dbname, s=service, f=from_url)
+
+ base_url = self.get_base_url(cr, uid, context)
+ client_id = self.get_client_id(cr, uid, service, context)
+
+ params = {
+ 'response_type': 'code',
+ 'client_id': client_id,
+ 'state': simplejson.dumps(state_obj),
+ 'scope': scope or 'https://www.googleapis.com/auth/%s' % (service,),
+ 'redirect_uri': base_url + '/google_account/authentication',
+ 'approval_prompt': 'force',
+ 'access_type': 'offline'
+ }
+
+ uri = self.get_uri_oauth(a='auth') + "?%s" % werkzeug.url_encode(params)
+ return uri
+
+ def _get_google_token_json(self, cr, uid, authorize_code, service, context=None):
+ res = False
+ base_url = self.get_base_url(cr, uid, context)
+ client_id = self.get_client_id(cr, uid, service, context)
+ client_secret = self.get_client_secret(cr, uid, service, context)
+
+ params = {
+ 'code': authorize_code,
+ 'client_id': client_id,
+ 'client_secret': client_secret,
+ 'grant_type': 'authorization_code',
+ 'redirect_uri': base_url + '/google_account/authentication'
+ }
+
+ headers = {"content-type": "application/x-www-form-urlencoded"}
+
+ try:
+ uri = self.get_uri_oauth(a='token')
+ data = werkzeug.url_encode(params)
+
+ st, res, ask_time = self._do_request(cr, uid, uri, params=data, headers=headers, type='POST', preuri='', context=context)
+ except urllib2.HTTPError:
+ error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid"
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
+ return res
+
+ def _refresh_google_token_json(self, cr, uid, refresh_token, service, context=None): # exchange_AUTHORIZATION vs Token (service = calendar)
+ res = False
+ client_id = self.get_client_id(cr, uid, service, context)
+ client_secret = self.get_client_secret(cr, uid, service, context)
+
+ params = {
+ 'refresh_token': refresh_token,
+ 'client_id': client_id,
+ 'client_secret': client_secret,
+ 'grant_type': 'refresh_token',
+ }
+
+ headers = {"content-type": "application/x-www-form-urlencoded"}
+
+ try:
+ uri = self.get_uri_oauth(a='token')
+
+ data = werkzeug.url_encode(params)
+ st, res, ask_time = self._do_request(cr, uid, uri, params=data, headers=headers, type='POST', preuri='', context=context)
+ except urllib2.HTTPError, e:
+ if e.code == 400: # invalid grant
+ registry = openerp.modules.registry.RegistryManager.get(request.session.db)
+ with registry.cursor() as cur:
+ self.pool['res.users'].write(cur, uid, [uid], {'google_%s_rtoken' % service: False}, context=context)
+ error_key = simplejson.loads(e.read()).get("error", "nc")
+ _logger.exception("Bad google request : %s !" % error_key)
+ error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired [%s]" % error_key
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
+ return res
+
+ def _do_request(self, cr, uid, uri, params={}, headers={}, type='POST', preuri="https://www.googleapis.com", context=None):
+ if context is None:
+ context = {}
+
+ """ Return a tuple ('HTTP_CODE', 'HTTP_RESPONSE') """
+ _logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !" % (uri, type, headers, werkzeug.url_encode(params) if type == 'GET' else params))
+
+ status = 418
+ response = ""
+ ask_time = datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+ try:
+ if type.upper() == 'GET' or type.upper() == 'DELETE':
+ data = werkzeug.url_encode(params)
+ req = urllib2.Request(preuri + uri + "?" + data)
+ elif type.upper() == 'POST' or type.upper() == 'PATCH' or type.upper() == 'PUT':
+ req = urllib2.Request(preuri + uri, params, headers)
+ else:
+ raise ('Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!' % (type))
+ req.get_method = lambda: type.upper()
+
+ request = urllib2.urlopen(req, timeout=TIMEOUT)
+ status = request.getcode()
+
+ if int(status) in (204, 404): # Page not found, no response
+ response = False
+ else:
+ content = request.read()
+ response = simplejson.loads(content)
+
+ try:
+ ask_time = datetime.strptime(request.headers.get('date'), "%a, %d %b %Y %H:%M:%S %Z")
+ except:
+ pass
+ except urllib2.HTTPError, e:
+ if e.code in (204, 404):
+ status = e.code
+ response = ""
+ else:
+ _logger.exception("Bad google request : %s !" % e.read())
+ if e.code in (400, 401, 410):
+ raise e
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong with your request to google"), context=context)
+ return (status, response, ask_time)
+
+ def get_base_url(self, cr, uid, context=None):
+ return self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://www.openerp.com?NoBaseUrl', context=context)
+
+ def get_client_id(self, cr, uid, service, context=None):
+ return self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % (service,), default=False, context=context)
+
+ def get_client_secret(self, cr, uid, service, context=None):
+ return self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % (service,), default=False, context=context)
+
+ def get_uri_oauth(self, a=''): # a = optional action
+ return "https://accounts.google.com/o/oauth2/%s" % (a,)
+
+ def get_uri_api(self):
+ return 'https://www.googleapis.com'
diff --git a/google_account/google_account.xml b/google_account/google_account.xml
new file mode 100644
index 0000000..c6748df
--- /dev/null
+++ b/google_account/google_account.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ google_redirect_uri
+ urn:ietf:wg:oauth:2.0:oob
+
+
+
\ No newline at end of file
diff --git a/google_account/google_account_data.xml b/google_account/google_account_data.xml
new file mode 100644
index 0000000..c6748df
--- /dev/null
+++ b/google_account/google_account_data.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ google_redirect_uri
+ urn:ietf:wg:oauth:2.0:oob
+
+
+
\ No newline at end of file
diff --git a/google_account/i18n/af.po b/google_account/i18n/af.po
new file mode 100644
index 0000000..8a57404
--- /dev/null
+++ b/google_account/i18n/af.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Afrikaans (http://www.transifex.com/odoo/odoo-8/language/af/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: af\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Geskep deur"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Geskep op"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Laas Opgedateer deur"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Laas Opgedateer op"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Iets het foutgegaan met jou versoek aan google"
diff --git a/google_account/i18n/ar.po b/google_account/i18n/ar.po
new file mode 100644
index 0000000..4d50993
--- /dev/null
+++ b/google_account/i18n/ar.po
@@ -0,0 +1,52 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# hoxhe aits , 2015
+# Mustafa Rawi , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-09-12 22:29+0000\n"
+"Last-Translator: Mustafa Rawi \n"
+"Language-Team: Arabic (http://www.transifex.com/odoo/odoo-8/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "أُنشئ بواسطة"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "أنشئ في"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "المعرف"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "آخر تحديث بواسطة"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "آخر تحديث في"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "حدث خطأ ما مع طلبك إلى جوجل"
diff --git a/google_account/i18n/bg.po b/google_account/i18n/bg.po
new file mode 100644
index 0000000..ddc6838
--- /dev/null
+++ b/google_account/i18n/bg.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Radina , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-01 12:32+0000\n"
+"Last-Translator: Radina \n"
+"Language-Team: Bulgarian (http://www.transifex.com/odoo/odoo-8/language/bg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: bg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Създадено от"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Създадено на"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Последно обновено от"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Последно обновено на"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Нещо се обърка с Вашето искане до Google"
diff --git a/google_account/i18n/bs.po b/google_account/i18n/bs.po
new file mode 100644
index 0000000..b675b99
--- /dev/null
+++ b/google_account/i18n/bs.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-11 16:53+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Bosnian (http://www.transifex.com/odoo/odoo-8/language/bs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: bs\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Kreirao"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Kreirano"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Zadnji ažurirao"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Zadnje ažurirano"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/ca.po b/google_account/i18n/ca.po
new file mode 100644
index 0000000..9777c8c
--- /dev/null
+++ b/google_account/i18n/ca.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-25 18:54+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Catalan (http://www.transifex.com/odoo/odoo-8/language/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creat per"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creat el"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Actualitzat per última vegada per"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Actualitzat per última vegada el dia"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Alguna cosa ha fallat amb la seva sol·licitud a google"
diff --git a/google_account/i18n/cs.po b/google_account/i18n/cs.po
new file mode 100644
index 0000000..538043b
--- /dev/null
+++ b/google_account/i18n/cs.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-27 09:14+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/odoo-8/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Vytvořil(a)"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Vytvořeno"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Naposled upraveno"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Naposled upraveno"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/da.po b/google_account/i18n/da.po
new file mode 100644
index 0000000..0c4cb73
--- /dev/null
+++ b/google_account/i18n/da.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-27 09:14+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Danish (http://www.transifex.com/odoo/odoo-8/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Oprettet af"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Oprettet den"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "Id"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Sidst opdateret af"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Sidst opdateret den"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/de.po b/google_account/i18n/de.po
new file mode 100644
index 0000000..b7d95ca
--- /dev/null
+++ b/google_account/i18n/de.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Mathias Neef , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-05 15:35+0000\n"
+"Last-Translator: Mathias Neef \n"
+"Language-Team: German (http://www.transifex.com/odoo/odoo-8/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Erstellt von"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Erstellt am"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Zuletzt aktualisiert durch"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Zuletzt aktualisiert am"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Etwas ging schief mit Ihrer Anfrage an Google"
diff --git a/google_account/i18n/el.po b/google_account/i18n/el.po
new file mode 100644
index 0000000..a7672c1
--- /dev/null
+++ b/google_account/i18n/el.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Goutoudis Kostas , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-12-05 19:26+0000\n"
+"Last-Translator: Goutoudis Kostas \n"
+"Language-Team: Greek (http://www.transifex.com/odoo/odoo-8/language/el/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Δημιουργήθηκε από"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Δημιουργήθηκε στις"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "Κωδικός"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Τελευταία Ενημέρωση από"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Τελευταία Ενημέρωση στις"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Κάτι πήγε λάθος με το αίτημα στην Google"
diff --git a/google_account/i18n/en_GB.po b/google_account/i18n/en_GB.po
new file mode 100644
index 0000000..091dc7d
--- /dev/null
+++ b/google_account/i18n/en_GB.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: English (United Kingdom) (http://www.transifex.com/odoo/odoo-8/language/en_GB/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: en_GB\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Created by"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Created on"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Last Updated by"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Last Updated on"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es.po b/google_account/i18n/es.po
new file mode 100644
index 0000000..57c7942
--- /dev/null
+++ b/google_account/i18n/es.po
@@ -0,0 +1,52 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# David Perez , 2015
+# FIRST AUTHOR , 2014
+# Pedro M. Baeza , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Pedro M. Baeza \n"
+"Language-Team: Spanish (http://www.transifex.com/odoo/odoo-8/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID (identificación)"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo fue mal en la petición a Google"
diff --git a/google_account/i18n/es_AR.po b/google_account/i18n/es_AR.po
new file mode 100644
index 0000000..b84f1bb
--- /dev/null
+++ b/google_account/i18n/es_AR.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Leonardo Germán Chianea , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-08-20 21:41+0000\n"
+"Last-Translator: Leonardo Germán Chianea \n"
+"Language-Team: Spanish (Argentina) (http://www.transifex.com/odoo/odoo-8/language/es_AR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_AR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización realizada por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización el"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo salió mal con su solicitud a google"
diff --git a/google_account/i18n/es_BO.po b/google_account/i18n/es_BO.po
new file mode 100644
index 0000000..b6e9616
--- /dev/null
+++ b/google_account/i18n/es_BO.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Spanish (Bolivia) (http://www.transifex.com/odoo/odoo-8/language/es_BO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_BO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es_CL.po b/google_account/i18n/es_CL.po
new file mode 100644
index 0000000..97cdc94
--- /dev/null
+++ b/google_account/i18n/es_CL.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Spanish (Chile) (http://www.transifex.com/odoo/odoo-8/language/es_CL/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_CL\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID (identificación)"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es_CO.po b/google_account/i18n/es_CO.po
new file mode 100644
index 0000000..b286471
--- /dev/null
+++ b/google_account/i18n/es_CO.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-23 05:10+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Colombia) (http://www.transifex.com/odoo/odoo-8/language/es_CO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_CO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Actualizado por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Actualizado"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo salió mal con su petición a Google"
diff --git a/google_account/i18n/es_CR.po b/google_account/i18n/es_CR.po
new file mode 100644
index 0000000..966fde6
--- /dev/null
+++ b/google_account/i18n/es_CR.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Costa Rica) (http://www.transifex.com/odoo/odoo-8/language/es_CR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_CR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es_DO.po b/google_account/i18n/es_DO.po
new file mode 100644
index 0000000..ede6a09
--- /dev/null
+++ b/google_account/i18n/es_DO.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-08 17:05+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Dominican Republic) (http://www.transifex.com/odoo/odoo-8/language/es_DO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_DO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID (identificación)"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo fue mal en la petición a Google"
diff --git a/google_account/i18n/es_EC.po b/google_account/i18n/es_EC.po
new file mode 100644
index 0000000..94f3994
--- /dev/null
+++ b/google_account/i18n/es_EC.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-14 01:51+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Ecuador) (http://www.transifex.com/odoo/odoo-8/language/es_EC/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_EC\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por:"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Ultima Actualización por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Actualizado en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Ha existido un error cuando enviamos el requerimiento a Google"
diff --git a/google_account/i18n/es_MX.po b/google_account/i18n/es_MX.po
new file mode 100644
index 0000000..55bb6b1
--- /dev/null
+++ b/google_account/i18n/es_MX.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-01-18 18:41+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Mexico) (http://www.transifex.com/odoo/odoo-8/language/es_MX/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_MX\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Ultima actualizacion por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Ultima actualización realizada"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo enviado esta mal con el requerimiento de google"
diff --git a/google_account/i18n/es_PA.po b/google_account/i18n/es_PA.po
new file mode 100644
index 0000000..f5b63ea
--- /dev/null
+++ b/google_account/i18n/es_PA.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Spanish (Panama) (http://www.transifex.com/odoo/odoo-8/language/es_PA/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_PA\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es_PE.po b/google_account/i18n/es_PE.po
new file mode 100644
index 0000000..b14dbbd
--- /dev/null
+++ b/google_account/i18n/es_PE.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Luis Miguel Sarabia , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-21 14:52+0000\n"
+"Last-Translator: Luis Miguel Sarabia \n"
+"Language-Team: Spanish (Peru) (http://www.transifex.com/odoo/odoo-8/language/es_PE/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_PE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Actualizado última vez por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Ultima Actualización"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo ha fallado en su envío a google"
diff --git a/google_account/i18n/es_PY.po b/google_account/i18n/es_PY.po
new file mode 100644
index 0000000..d7bc23e
--- /dev/null
+++ b/google_account/i18n/es_PY.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Paraguay) (http://www.transifex.com/odoo/odoo-8/language/es_PY/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_PY\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/es_VE.po b/google_account/i18n/es_VE.po
new file mode 100644
index 0000000..dbdd116
--- /dev/null
+++ b/google_account/i18n/es_VE.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-05-15 18:49+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Spanish (Venezuela) (http://www.transifex.com/odoo/odoo-8/language/es_VE/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_VE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización realizada por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Ultima actualizacion en"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/et.po b/google_account/i18n/et.po
new file mode 100644
index 0000000..8891ac2
--- /dev/null
+++ b/google_account/i18n/et.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-03-12 14:09+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Estonian (http://www.transifex.com/odoo/odoo-8/language/et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Loonud"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Loodud"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Viimati uuendatud"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Viimati uuendatud"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/eu.po b/google_account/i18n/eu.po
new file mode 100644
index 0000000..46a588d
--- /dev/null
+++ b/google_account/i18n/eu.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Oihane Crucelaegui , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-14 15:10+0000\n"
+"Last-Translator: Oihane Crucelaegui \n"
+"Language-Team: Basque (http://www.transifex.com/odoo/odoo-8/language/eu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: eu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Nork sortua"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Noiz sortua"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Nork eguneratua"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Noiz eguneratua"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Zerbait oker joan da googleko zure eskaerarekin"
diff --git a/google_account/i18n/fa.po b/google_account/i18n/fa.po
new file mode 100644
index 0000000..6e34202
--- /dev/null
+++ b/google_account/i18n/fa.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Persian (http://www.transifex.com/odoo/odoo-8/language/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fa\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "ایجاد شده توسط"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "ایجاد شده در"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "شناسه"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "آخرین به روز رسانی توسط"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "آخرین به روز رسانی در"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/fi.po b/google_account/i18n/fi.po
new file mode 100644
index 0000000..57d5f62
--- /dev/null
+++ b/google_account/i18n/fi.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Kari Lindgren , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-22 16:16+0000\n"
+"Last-Translator: Kari Lindgren \n"
+"Language-Team: Finnish (http://www.transifex.com/odoo/odoo-8/language/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Luonut"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Luotu"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Viimeksi päivittänyt"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Viimeksi päivitetty"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Jotakin meni vikaan google pyynnössäsi"
diff --git a/google_account/i18n/fr.po b/google_account/i18n/fr.po
new file mode 100644
index 0000000..03ad40e
--- /dev/null
+++ b/google_account/i18n/fr.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Simon CARRIER , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-09-07 09:22+0000\n"
+"Last-Translator: Florian Hatat\n"
+"Language-Team: French (http://www.transifex.com/odoo/odoo-8/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Dernière modification par"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Quelque chose ne s'est pas passé comme prévu avec votre demande à Google"
diff --git a/google_account/i18n/fr_BE.po b/google_account/i18n/fr_BE.po
new file mode 100644
index 0000000..6074de1
--- /dev/null
+++ b/google_account/i18n/fr_BE.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: French (Belgium) (http://www.transifex.com/odoo/odoo-8/language/fr_BE/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr_BE\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Derniere fois mis à jour par"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Dernière mis à jour le"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/fr_CA.po b/google_account/i18n/fr_CA.po
new file mode 100644
index 0000000..4a07c7b
--- /dev/null
+++ b/google_account/i18n/fr_CA.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-09 05:52+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: French (Canada) (http://www.transifex.com/odoo/odoo-8/language/fr_CA/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr_CA\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Créé le"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "Identifiant"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Quelque chose se passait mal avec votre demande chez Google"
diff --git a/google_account/i18n/gl.po b/google_account/i18n/gl.po
new file mode 100644
index 0000000..56a71dd
--- /dev/null
+++ b/google_account/i18n/gl.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Galician (http://www.transifex.com/odoo/odoo-8/language/gl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creado o"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/google_account.pot b/google_account/i18n/google_account.pot
new file mode 100644
index 0000000..a7e5dd6
--- /dev/null
+++ b/google_account/i18n/google_account.pot
@@ -0,0 +1,48 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-01-21 14:08+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
+
diff --git a/google_account/i18n/google_base_account.pot b/google_account/i18n/google_base_account.pot
new file mode 100644
index 0000000..44698f1
--- /dev/null
+++ b/google_account/i18n/google_base_account.pot
@@ -0,0 +1,106 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * google_base_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2012-12-21 17:05+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: google_base_account
+#: field:res.users,gmail_user:0
+msgid "Username"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.actions.act_window,name:google_base_account.act_google_login_form
+msgid "Google Login"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:29
+#, python-format
+msgid "Google Contacts Import Error!"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.model,name:google_base_account.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "or"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "Google login"
+msgstr ""
+
+#. module: google_base_account
+#: field:google.login,password:0
+msgid "Google Password"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:77
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: google_base_account
+#: view:res.users:0
+msgid "Google Account"
+msgstr ""
+
+#. module: google_base_account
+#: view:res.users:0
+msgid "Synchronization"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:77
+#, python-format
+msgid "Authentication failed. Check the user and password."
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:29
+#, python-format
+msgid "Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.model,name:google_base_account.model_google_login
+msgid "Google Contact"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "Cancel"
+msgstr ""
+
+#. module: google_base_account
+#: field:google.login,user:0
+msgid "Google Username"
+msgstr ""
+
+#. module: google_base_account
+#: field:res.users,gmail_password:0
+msgid "Password"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "_Login"
+msgstr ""
+
diff --git a/google_account/i18n/gu.po b/google_account/i18n/gu.po
new file mode 100644
index 0000000..09b6352
--- /dev/null
+++ b/google_account/i18n/gu.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Gujarati (http://www.transifex.com/odoo/odoo-8/language/gu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: gu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ઓળખ"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/he.po b/google_account/i18n/he.po
new file mode 100644
index 0000000..7377efd
--- /dev/null
+++ b/google_account/i18n/he.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Hebrew (http://www.transifex.com/odoo/odoo-8/language/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: he\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "נוצר על ידי"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "נוצר ב-"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "מזהה"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "עודכן לאחרונה על ידי"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "עודכן לאחרונה על"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/hi.po b/google_account/i18n/hi.po
new file mode 100644
index 0000000..32d1070
--- /dev/null
+++ b/google_account/i18n/hi.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Lata Verma , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-09-02 17:51+0000\n"
+"Last-Translator: Lata Verma \n"
+"Language-Team: Hindi (http://www.transifex.com/odoo/odoo-8/language/hi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "निर्माण कर्ता"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "निर्माण तिथि"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "पहचान"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "अंतिम सुधारकर्ता"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "अंतिम सुधार की तिथि"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "गूगल करने के लिए आपके अनुरोध के साथ कुछ गलत हुआ।"
diff --git a/google_account/i18n/hr.po b/google_account/i18n/hr.po
new file mode 100644
index 0000000..fe9af06
--- /dev/null
+++ b/google_account/i18n/hr.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-15 18:04+0000\n"
+"Last-Translator: Davor Bojkić \n"
+"Language-Team: Croatian (http://www.transifex.com/odoo/odoo-8/language/hr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hr\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Kreirao"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Vrijeme kreiranja"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Promijenio"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Vrijeme promjene"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Nešto je pogrešno u vašem zahtjevu prema Google-u"
diff --git a/google_account/i18n/hu.po b/google_account/i18n/hu.po
new file mode 100644
index 0000000..63eec94
--- /dev/null
+++ b/google_account/i18n/hu.po
@@ -0,0 +1,52 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# krnkris, 2015
+# Tóth Csaba , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: krnkris\n"
+"Language-Team: Hungarian (http://www.transifex.com/odoo/odoo-8/language/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Készítette"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Létrehozás dátuma"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Utoljára frissítette"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Utoljára frissítve"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Valami hiba lépett fel a google felé feladott kérés közben"
diff --git a/google_account/i18n/id.po b/google_account/i18n/id.po
new file mode 100644
index 0000000..991d9c4
--- /dev/null
+++ b/google_account/i18n/id.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# oon arfiandwi , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-12-18 06:51+0000\n"
+"Last-Translator: oon arfiandwi \n"
+"Language-Team: Indonesian (http://www.transifex.com/odoo/odoo-8/language/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Dibuat oleh"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Dibuat pada"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Diperbaharui oleh"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Diperbaharui pada"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Terjadi kesalahan pada permintaan layanan ke google"
diff --git a/google_account/i18n/is.po b/google_account/i18n/is.po
new file mode 100644
index 0000000..d26ee14
--- /dev/null
+++ b/google_account/i18n/is.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Icelandic (http://www.transifex.com/odoo/odoo-8/language/is/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: is\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Búið til af"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "Auðkenni"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/it.po b/google_account/i18n/it.po
new file mode 100644
index 0000000..c36efe3
--- /dev/null
+++ b/google_account/i18n/it.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-01-04 22:33+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Italian (http://www.transifex.com/odoo/odoo-8/language/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creato da"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creato il"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Ultima modifica di"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Ultima modifica il"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Qualcosa è andata male con la tua richiesta a google"
diff --git a/google_account/i18n/ja.po b/google_account/i18n/ja.po
new file mode 100644
index 0000000..46058ea
--- /dev/null
+++ b/google_account/i18n/ja.po
@@ -0,0 +1,52 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Manami Hashi , 2015
+# Yoshi Tashiro , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-23 15:32+0000\n"
+"Last-Translator: Yoshi Tashiro \n"
+"Language-Team: Japanese (http://www.transifex.com/odoo/odoo-8/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "作成者"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "作成日"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "最終更新者"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "最終更新日"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Googleへのリクエストに異常があるようです"
diff --git a/google_account/i18n/ka.po b/google_account/i18n/ka.po
new file mode 100644
index 0000000..634b510
--- /dev/null
+++ b/google_account/i18n/ka.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-04 12:01+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Georgian (http://www.transifex.com/odoo/odoo-8/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "შემქმნელი"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "შექმნის თარიღი"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "იდენტიფიკატორი"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "ბოლოს განაახლა"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "ბოლოს განახლებულია"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/kab.po b/google_account/i18n/kab.po
new file mode 100644
index 0000000..e06534c
--- /dev/null
+++ b/google_account/i18n/kab.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Belkacem Mohammed , 2015
+# FIRST AUTHOR , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Belkacem Mohammed \n"
+"Language-Team: Kabyle (http://www.transifex.com/odoo/odoo-8/language/kab/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: kab\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Yerna-t"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Yerna di"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "Asulay"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Asnifel aneggaru sɣur"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Aleqqem aneggaru di"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/ko.po b/google_account/i18n/ko.po
new file mode 100644
index 0000000..833abac
--- /dev/null
+++ b/google_account/i18n/ko.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-08-17 07:49+0000\n"
+"Last-Translator: choijaeho \n"
+"Language-Team: Korean (http://www.transifex.com/odoo/odoo-8/language/ko/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ko\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "작성자"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "작성일"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "최근 갱신한 사람"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "최근 갱신 날짜"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "귀하가 Google에 요청한 것에 무언가 문제가 발생했습니다"
diff --git a/google_account/i18n/ln.po b/google_account/i18n/ln.po
new file mode 100644
index 0000000..46f89d5
--- /dev/null
+++ b/google_account/i18n/ln.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Lingala (http://www.transifex.com/odoo/odoo-8/language/ln/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ln\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/lt.po b/google_account/i18n/lt.po
new file mode 100644
index 0000000..d5261c7
--- /dev/null
+++ b/google_account/i18n/lt.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Lithuanian (http://www.transifex.com/odoo/odoo-8/language/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Sukūrė"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Sukurta"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Paskutini kartą atnaujino"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Paskutinį kartą atnaujinta"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/lv.po b/google_account/i18n/lv.po
new file mode 100644
index 0000000..ad2c1ae
--- /dev/null
+++ b/google_account/i18n/lv.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Latvian (http://www.transifex.com/odoo/odoo-8/language/lv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Izveidoja"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Izveidots"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Pēdējo reizi atjaunoja"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Pēdējās izmaiņas"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/mk.po b/google_account/i18n/mk.po
new file mode 100644
index 0000000..64a96ce
--- /dev/null
+++ b/google_account/i18n/mk.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Aleksandar Vangelovski , 2015
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-09-22 11:46+0000\n"
+"Last-Translator: Aleksandar Vangelovski \n"
+"Language-Team: Macedonian (http://www.transifex.com/odoo/odoo-8/language/mk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: mk\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Креирано од"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Креирано на"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Последно ажурирање од"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Последно ажурирање на"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Се извинуваме но има некој проблем со вашето барање до google"
diff --git a/google_account/i18n/ml_IN.po b/google_account/i18n/ml_IN.po
new file mode 100644
index 0000000..182c88d
--- /dev/null
+++ b/google_account/i18n/ml_IN.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Shoble Thomas , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-04-22 12:17+0000\n"
+"Last-Translator: Shoble Thomas \n"
+"Language-Team: Malayalam (India) (http://www.transifex.com/odoo/odoo-8/language/ml_IN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ml_IN\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "നിർമിച്ചത്"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "നിർമിച്ച ദിവസം"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ഐ ഡി"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "അവസാനം അപ്ഡേറ്റ് ചെയ്തത്"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "അവസാനം അപ്ഡേറ്റ് ചെയ്ത ദിവസം"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "താങ്കൾ ഗൂഗിൾ ലിൽ കൊടുത്ത അപേക്ഷ യിൽ എന്തോ കുഴപ്പം സംഭവിച്ചു "
diff --git a/google_account/i18n/mn.po b/google_account/i18n/mn.po
new file mode 100644
index 0000000..c65457f
--- /dev/null
+++ b/google_account/i18n/mn.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Mongolian (http://www.transifex.com/odoo/odoo-8/language/mn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: mn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Үүсгэгч"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Үүсгэсэн огноо"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Сүүлийн засвар хийсэн"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Сүүлийн засвар хийсэн огноо"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/nb.po b/google_account/i18n/nb.po
new file mode 100644
index 0000000..8ba41cc
--- /dev/null
+++ b/google_account/i18n/nb.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Norwegian Bokmål (http://www.transifex.com/odoo/odoo-8/language/nb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Opprettet av"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Opprettet"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Sist oppdatert av"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Sist oppdatert"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/nl.po b/google_account/i18n/nl.po
new file mode 100644
index 0000000..751e89d
--- /dev/null
+++ b/google_account/i18n/nl.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Yenthe Van Ginneken , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-09-22 09:50+0000\n"
+"Last-Translator: Yenthe Van Ginneken \n"
+"Language-Team: Dutch (http://www.transifex.com/odoo/odoo-8/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Aangemaakt door"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Aangemaakt op"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Laatst aangepast door"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Laatst aangepast op"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Er ging iets fout tijdens het verbinden met Google"
diff --git a/google_account/i18n/nl_BE.po b/google_account/i18n/nl_BE.po
new file mode 100644
index 0000000..5868b3c
--- /dev/null
+++ b/google_account/i18n/nl_BE.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Dutch (Belgium) (http://www.transifex.com/odoo/odoo-8/language/nl_BE/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl_BE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Gemaakt door"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Gemaakt op"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Laatst bijgewerkt door"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Laatst bijgewerkt op"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/pl.po b/google_account/i18n/pl.po
new file mode 100644
index 0000000..ca32ada
--- /dev/null
+++ b/google_account/i18n/pl.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-08 14:15+0000\n"
+"Last-Translator: Dariusz Żbikowski \n"
+"Language-Team: Polish (http://www.transifex.com/odoo/odoo-8/language/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Utworzone przez"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Data utworzenia"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Ostatnio modyfikowane przez"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Data ostatniej modyfikacji"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Coś poszło nie tak z twoim zapytaniem do Google"
diff --git a/google_account/i18n/pt.po b/google_account/i18n/pt.po
new file mode 100644
index 0000000..7d2401f
--- /dev/null
+++ b/google_account/i18n/pt.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-25 14:30+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Portuguese (http://www.transifex.com/odoo/odoo-8/language/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Criada por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Fundado em"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Últimamente Actualizado por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última Actualização em"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Aconteceu algo errado com o seu pedido à Google"
diff --git a/google_account/i18n/pt_BR.po b/google_account/i18n/pt_BR.po
new file mode 100644
index 0000000..db61655
--- /dev/null
+++ b/google_account/i18n/pt_BR.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Mateus Cerqueira Lopes , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: danimaribeiro \n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/odoo/odoo-8/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Criado por"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Criado em"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Última atualização por"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Última atualização em"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Algo deu errado com o seu pedido para o Google"
diff --git a/google_account/i18n/ro.po b/google_account/i18n/ro.po
new file mode 100644
index 0000000..a170376
--- /dev/null
+++ b/google_account/i18n/ro.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 18:23+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Romanian (http://www.transifex.com/odoo/odoo-8/language/ro/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ro\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Creat de"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Creat în"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Ultima actualizare făcută de"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Ultima actualizare în"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/ru.po b/google_account/i18n/ru.po
new file mode 100644
index 0000000..7da0b6b
--- /dev/null
+++ b/google_account/i18n/ru.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Eduard, 2015
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-11-13 19:44+0000\n"
+"Last-Translator: Eduard\n"
+"Language-Team: Russian (http://www.transifex.com/odoo/odoo-8/language/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Создано"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Создан"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Последний раз обновлено"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Последний раз обновлено"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Что-то пошло не так с вашим запросом к google"
diff --git a/google_account/i18n/sk.po b/google_account/i18n/sk.po
new file mode 100644
index 0000000..ede0349
--- /dev/null
+++ b/google_account/i18n/sk.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-08 05:16+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Slovak (http://www.transifex.com/odoo/odoo-8/language/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Vytvoril"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Vytvorené"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Naposledy upravoval"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Naposledy upravované"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Niečo sa pokazilo na vašej požiadavke na google"
diff --git a/google_account/i18n/sl.po b/google_account/i18n/sl.po
new file mode 100644
index 0000000..3f5e40d
--- /dev/null
+++ b/google_account/i18n/sl.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+# Matjaž Mozetič , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Matjaž Mozetič \n"
+"Language-Team: Slovenian (http://www.transifex.com/odoo/odoo-8/language/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Ustvaril"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Ustvarjeno"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Zadnji posodobil"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Zadnjič posodobljeno"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Pri vašem zahtevku google je prišlo do težav."
diff --git a/google_account/i18n/sq.po b/google_account/i18n/sq.po
new file mode 100644
index 0000000..53343de
--- /dev/null
+++ b/google_account/i18n/sq.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Albanian (http://www.transifex.com/odoo/odoo-8/language/sq/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Krijuar nga"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Krijuar me"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Modifikuar per here te fundit nga"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Modifikuar per here te fundit me"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/sr.po b/google_account/i18n/sr.po
new file mode 100644
index 0000000..60bc018
--- /dev/null
+++ b/google_account/i18n/sr.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Serbian (http://www.transifex.com/odoo/odoo-8/language/sr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sr\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Kreiran"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/sr@latin.po b/google_account/i18n/sr@latin.po
new file mode 100644
index 0000000..5486c64
--- /dev/null
+++ b/google_account/i18n/sr@latin.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-10-31 16:30+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Serbian (Latin) (http://www.transifex.com/odoo/odoo-8/language/sr@latin/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sr@latin\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Kreirao"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Kreiran"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Zadnja izmjena"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Zadnja izmjena"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/sv.po b/google_account/i18n/sv.po
new file mode 100644
index 0000000..840778b
--- /dev/null
+++ b/google_account/i18n/sv.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Anders Wallenquist , 2015
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-12-11 13:25+0000\n"
+"Last-Translator: Anders Wallenquist \n"
+"Language-Team: Swedish (http://www.transifex.com/odoo/odoo-8/language/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Skapad av"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Skapad den"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Senast uppdaterad av"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Senast uppdaterad"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Något gick fel med Google-anropet"
diff --git a/google_account/i18n/ta.po b/google_account/i18n/ta.po
new file mode 100644
index 0000000..5e96128
--- /dev/null
+++ b/google_account/i18n/ta.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-05-18 11:29+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: Tamil (http://www.transifex.com/odoo/odoo-8/language/ta/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ta\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "உருவாக்கியவர்"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "உருவாக்கப்பட்ட \nதேதி"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "உங்கள் கோரிக்கை Google க்கு கொண்டு ஏதோ தவறு நடந்துவிட்டது"
diff --git a/google_account/i18n/th.po b/google_account/i18n/th.po
new file mode 100644
index 0000000..ea98ea8
--- /dev/null
+++ b/google_account/i18n/th.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Thai (http://www.transifex.com/odoo/odoo-8/language/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "จัดทำโดย"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "สร้างเมื่อ"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "อัพเดทครั้งสุดท้ายโดย"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "อัพเดทครั้งสุดท้ายเมื่อ"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/tr.po b/google_account/i18n/tr.po
new file mode 100644
index 0000000..31ab698
--- /dev/null
+++ b/google_account/i18n/tr.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-07-17 07:11+0000\n"
+"Last-Translator: Murat Kaplan \n"
+"Language-Team: Turkish (http://www.transifex.com/odoo/odoo-8/language/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Oluşturan"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Oluşturulma"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Son Güncelleyen"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Son Güncelleme"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Google da yaptığınız isteğinizle ilgili bir şeyler yanlış gitti"
diff --git a/google_account/i18n/uk.po b/google_account/i18n/uk.po
new file mode 100644
index 0000000..56019ff
--- /dev/null
+++ b/google_account/i18n/uk.po
@@ -0,0 +1,50 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# Bogdan, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-08-22 14:18+0000\n"
+"Last-Translator: Bogdan\n"
+"Language-Team: Ukrainian (http://www.transifex.com/odoo/odoo-8/language/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Створив"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Створено"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Востаннє відредаговано"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Дата останньої зміни"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "Щось пішло не так з вашим запитом в google"
diff --git a/google_account/i18n/vi.po b/google_account/i18n/vi.po
new file mode 100644
index 0000000..7f6c59d
--- /dev/null
+++ b/google_account/i18n/vi.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2016-02-23 04:22+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Vietnamese (http://www.transifex.com/odoo/odoo-8/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "Tạo bởi"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "Tạo trên"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "Cập nhật lần cuối bởi"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "Cập nhật lần cuối"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/google_account/i18n/zh_CN.po b/google_account/i18n/zh_CN.po
new file mode 100644
index 0000000..b979ff8
--- /dev/null
+++ b/google_account/i18n/zh_CN.po
@@ -0,0 +1,51 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+# FIRST AUTHOR , 2012,2014
+# mrshelly , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-08-07 12:18+0000\n"
+"Last-Translator: mrshelly \n"
+"Language-Team: Chinese (China) (http://www.transifex.com/odoo/odoo-8/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "创建人"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "创建"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "标识"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "最后更新"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "最后一次更新"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr "你对谷歌的访问出错了"
diff --git a/google_account/i18n/zh_TW.po b/google_account/i18n/zh_TW.po
new file mode 100644
index 0000000..e6c4f76
--- /dev/null
+++ b/google_account/i18n/zh_TW.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * google_account
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-01-21 14:08+0000\n"
+"PO-Revision-Date: 2015-12-04 06:06+0000\n"
+"Last-Translator: Martin Trigaux\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/odoo/odoo-8/language/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: google_account
+#: field:google.service,create_uid:0
+msgid "Created by"
+msgstr "建立者"
+
+#. module: google_account
+#: field:google.service,create_date:0
+msgid "Created on"
+msgstr "建立於"
+
+#. module: google_account
+#: field:google.service,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: google_account
+#: field:google.service,write_uid:0
+msgid "Last Updated by"
+msgstr "最後更新:"
+
+#. module: google_account
+#: field:google.service,write_date:0
+msgid "Last Updated on"
+msgstr "最後更新於"
+
+#. module: google_account
+#: code:addons/google_account/google_account.py:168
+#, python-format
+msgid "Something went wrong with your request to google"
+msgstr ""
diff --git a/mail_tracking/README.rst b/mail_tracking/README.rst
new file mode 100644
index 0000000..e2a9bd2
--- /dev/null
+++ b/mail_tracking/README.rst
@@ -0,0 +1,112 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+
+=============
+Mail tracking
+=============
+
+This module shows email notification tracking status for any messages in
+mail thread (chatter). Each notified partner will have an intuitive icon just
+right to his name.
+
+
+Installation
+============
+
+If you're using a multi-database installation (with or without dbfilter option)
+where /web/databse/selector returns a list of more than one database, then
+you need to add ``mail_tracking`` addon to wide load addons list
+(by default, only ``web`` addon), setting ``--load`` option.
+For example, ``--load=web,mail_tracking``
+
+
+Usage
+=====
+
+When user sends a message in mail_thread (chatter), for instance in partner
+form, then an email tracking is created for each email notification. Then a
+status icon will appear just right to name of notified partner.
+
+These are all available status icons:
+
+.. |sent| image:: mail_tracking/static/src/img/sent.png
+ :width: 10px
+
+.. |delivered| image:: mail_tracking/static/src/img/delivered.png
+ :width: 15px
+
+.. |opened| image:: mail_tracking/static/src/img/opened.png
+ :width: 15px
+
+.. |error| image:: mail_tracking/static/src/img/error.png
+ :width: 10px
+
+.. |waiting| image:: mail_tracking/static/src/img/waiting.png
+ :width: 10px
+
+.. |unknown| image:: mail_tracking/static/src/img/unknown.png
+ :width: 10px
+
+|unknown| **Unknown**: No email tracking info available. Maybe this notified partner has 'Receive Inbox Notifications by Email' == 'Never'
+
+|waiting| **Waiting**: Waiting to be sent
+
+|error| **Error**: Error while sending
+
+|sent| **Sent**: Sent to SMTP server configured
+
+|delivered| **Delivered**: Delivered to final MX server
+
+|opened| **Opened**: Opened by partner
+
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/205/8.0
+
+If you want to see all tracking emails and events you can go to
+
+* Settings > Technical > Email > Tracking emails
+* Settings > Technical > Email > Tracking events
+
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues
+`_. In case of trouble, please
+check there if your issue has already been reported. If you spotted it first,
+help us smashing it by providing a detailed and welcomed feedback.
+
+Credits
+=======
+
+Images
+------
+
+* Odoo Community Association: `Icon `_.
+* Thanks to `LlubNek `_ and `Openclipart
+ `_ for `the icon
+ `_.
+
+Contributors
+------------
+
+* Pedro M. Baeza
+* Antonio Espinosa
+
+Maintainer
+----------
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit https://odoo-community.org.
diff --git a/mail_tracking/__init__.py b/mail_tracking/__init__.py
new file mode 100644
index 0000000..e32deff
--- /dev/null
+++ b/mail_tracking/__init__.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+# flake8: noqa
+
+from . import models
+from . import controllers
+from .hooks import pre_init_hook
diff --git a/mail_tracking/__init__.pyc b/mail_tracking/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8fdc6476a356f9fb3e0c1c88aa446ff8983b0802
GIT binary patch
literal 294
zcmYL@K?=e!5Je|#6;TR3MmL&`OA$}tLKi|ep)^rLlTJw@;@VqzCs$s;Nh=tV7v2o{
zne>y-U(ffcf!|8#-qG=Ef~3vB09XbU0~S3QJb@}1Jq443&7jK2GdPwLdZ-zpj0jVL
zMX8J*eL>z}7aSU++^?8Zv3E-7P6u&CZ1+Ph($
literal 0
HcmV?d00001
diff --git a/mail_tracking/__openerp__.py b/mail_tracking/__openerp__.py
new file mode 100644
index 0000000..36cf73e
--- /dev/null
+++ b/mail_tracking/__openerp__.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+{
+ "name": "Email tracking",
+ "summary": "Email tracking system for all mails sent",
+ "version": "8.0.2.0.2",
+ "category": "Social Network",
+ "website": "http://www.tecnativa.com",
+ "author": "Tecnativa, "
+ "Odoo Community Association (OCA)",
+ "license": "AGPL-3",
+ "application": False,
+ "installable": True,
+ "depends": [
+ "decimal_precision",
+ "mail",
+ ],
+ "data": [
+ "data/tracking_data.xml",
+ "security/ir.model.access.csv",
+ "views/assets.xml",
+ "views/mail_tracking_email_view.xml",
+ "views/mail_tracking_event_view.xml",
+ "views/res_partner_view.xml",
+ ],
+ "qweb": [
+ "static/src/xml/mail_tracking.xml",
+ ],
+ "pre_init_hook": "pre_init_hook",
+}
diff --git a/mail_tracking/controllers/__init__.py b/mail_tracking/controllers/__init__.py
new file mode 100644
index 0000000..73e1105
--- /dev/null
+++ b/mail_tracking/controllers/__init__.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+# flake8: noqa
+
+from . import main
diff --git a/mail_tracking/controllers/__init__.pyc b/mail_tracking/controllers/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d0b9c817287ef878ccfd3e1b13263a0f02f1ec6a
GIT binary patch
literal 204
zcmY+7F$zL442DymhzM>TqKoDNB92ZDItVVMyga46wt2J_arRc;$;k_tf{P*lmxPc%
z&1XJ)J>RDmele1|73GD1Bo%mopx~@P(Fl&Zk%dzNT~Wq@U|rnndRjzqsL=n&JDD+b
zPxA#cUmzZob=0
Iq|f!)7mL>{mH+?%
literal 0
HcmV?d00001
diff --git a/mail_tracking/controllers/main.py b/mail_tracking/controllers/main.py
new file mode 100644
index 0000000..91e6063
--- /dev/null
+++ b/mail_tracking/controllers/main.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import werkzeug
+from psycopg2 import OperationalError
+from openerp import api, http, registry, SUPERUSER_ID
+import logging
+_logger = logging.getLogger(__name__)
+
+BLANK = 'R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
+
+
+def _env_get(db):
+ reg = False
+ try:
+ reg = registry(db)
+ except OperationalError:
+ _logger.warning("Selected BD '%s' not found", db)
+ except: # pragma: no cover
+ _logger.warning("Selected BD '%s' connection error", db)
+ if reg:
+ return api.Environment(reg.cursor(), SUPERUSER_ID, {})
+ return False
+
+
+class MailTrackingController(http.Controller):
+
+ def _request_metadata(self):
+ request = http.request.httprequest
+ return {
+ 'ip': request.remote_addr or False,
+ 'user_agent': request.user_agent or False,
+ 'os_family': request.user_agent.platform or False,
+ 'ua_family': request.user_agent.browser or False,
+ }
+
+ @http.route('/mail/tracking/all/',
+ type='http', auth='none')
+ def mail_tracking_all(self, db, **kw):
+ env = _env_get(db)
+ if not env:
+ return 'NOT FOUND'
+ metadata = self._request_metadata()
+ response = env['mail.tracking.email'].event_process(
+ http.request, kw, metadata)
+ env.cr.commit()
+ env.cr.close()
+ return response
+
+ @http.route('/mail/tracking/event//',
+ type='http', auth='none')
+ def mail_tracking_event(self, db, event_type, **kw):
+ env = _env_get(db)
+ if not env:
+ return 'NOT FOUND'
+ metadata = self._request_metadata()
+ response = env['mail.tracking.email'].event_process(
+ http.request, kw, metadata, event_type=event_type)
+ env.cr.commit()
+ env.cr.close()
+ return response
+
+ @http.route('/mail/tracking/open/'
+ '//blank.gif',
+ type='http', auth='none')
+ def mail_tracking_open(self, db, tracking_email_id, **kw):
+ env = _env_get(db)
+ if env:
+ tracking_email = env['mail.tracking.email'].search([
+ ('id', '=', tracking_email_id),
+ ])
+ if tracking_email:
+ metadata = self._request_metadata()
+ tracking_email.event_create('open', metadata)
+ else:
+ _logger.warning(
+ "MailTracking email '%s' not found", tracking_email_id)
+ env.cr.commit()
+ env.cr.close()
+
+ # Always return GIF blank image
+ response = werkzeug.wrappers.Response()
+ response.mimetype = 'image/gif'
+ response.data = BLANK.decode('base64')
+ return response
diff --git a/mail_tracking/controllers/main.pyc b/mail_tracking/controllers/main.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..eff55b77d47e199f2d0054eb77adaf5effa31ab0
GIT binary patch
literal 3465
zcmcImS#KOg5U$zN-q^88LJq=V0wF7*csYV2BFD=52t)~MGR^@jq|tb%cRlu8bobga
zvY#A&5U>0vp7;UqRm~ngK;i*gp5CtRo}RAyzWTa~e@@qaKlXKgahcj>iYwHvP+X;UHD7_ZC#XF^YJ#>WN!94c
zq4os|@XizkWqO0XrzxnAD%18w>N*rudGLtn$My_=eWN~slZ1cauT^)@wXj<{CQ9<}+zAFZPoa7r*O!4(Bu_aoBvF+^3Q)&`yo?*W@@3&bnP<|9A<)nOr+IS{RKw^uvKeIwgzvR0#d;
zDhCIig?O<@8~EHtogHtPchGLANOi0V=9X9I?%Xza=91LTb<=(lm=FJHx|1deUO*)0
zlmv2;U0{bE`;k#D@9g3sTSenVX|JcW^!I$7gh|g8OfFz@E!hoqn#3xxwgS7;*Cy32
zgHh)w!F_OMQ&0jZbyy^gSw*iAt043nrt76an%><@^-d7#h93lJVj7uFgGTI!k!Q8v
z*}-=kIJwnn6e(?ZCYjIn1#eF!yIxP(i`dj$;g2{Kr|8T&)6Ql5UV(MPu~#wv9rk-M
z*luOCTZdoaKlWi6k2yr6Kva;Egs}xuL->LMrvdm3G9NhwF!_yOj$|0DsnY2+6T>y2
zeZJ4+nKiZHnku;)bq?={Z4AT;pX(JGz`qSr6qsaTNeEJ;>?R=xK&}NQOqsGz#V!nO
zFezJ-q2g$$O4)N6D$&A5oe9tqz{1SdVDydBp5J3^nIWn1x_%r+`(pL|fhD=>3fO!~
zt$yw+V=W(_^YOT?Rh(Mo0blL%*W4L20$>*Twwvl$ShlItJ$yPR5L3yhsOw%r=RElH
z7WVZ9r}ScF{lK^Wd;C=v4|1l2NV6c4c^|egvN2+$A4QEtNDbKeAlO_I8M6DC$^*iO
z_xpBBhLaRo$8lnk@yt^^<|i}&6rizc6zQNy=BkJwR01#`L0W(@_*S4Bz&sa`1IR^*
zwcxPKbHE$;VyQDQL@=C#@<=Bbz}EVUxyS1-TdU?WEY7U?p>#%^XU0+r7@mnnt5`
zfxm}b>?mWzD?vhd($RU+r*Rxw5s*%l8dYZp-D})1jb!Q0o@fB_RPY|gSq!aAhJ;t=
zg)X}`(hv`beS%XN<`WgCAPps8Tyri#ET$cE52L3rmJl3AdDPE?!+0-sig=L|fSng)
zH_;g*3k*wVkp+54+7rlv0%g`0Kzvkm4sijLj^mpf1AHsMmzmTu{|R5o>hYOR!R@|_
zoyG{eoC7XX-u(bgoqZdF>fUB^jvKyX+*{mygyuXz9MW|RqB!v-K6eJj>p6@~%$^xn}29bNQx&o!X$0i
zX#0X}hsy>#R>_;l0H}b0F?{TLlG(tlvEDKFUvWJ&*}Pt
zX&1)0BN_;oh{2|B)WW?w7i=yoi3}R$>&{j#Dm<8Tu%nf4l`Co?>^jLf(S|*xcYaa*
zUT$bVLlJ1ia0jX(MjS#>kcJ{c%g>svr}EuEb<#kIQ>^Ma;m5+n(tig3F{!1TI5~g5
zJZDKdDOL={BaF(`LnT(Ln)7y{0>!$Fwg$4#7H6DEsFye=!SKAqkCo?1x_e%n2K@-8
zgg?KR`0~|hAHn|^J(u;+T|hHVUg`aBMViYu$xS?lE3`^sa&pSKJ|#~fr^;Q7%i%M#
z-$}FH7vlnyW1w^BqnlXBI)&ufHQpL0*B$hXnB=#xX8
cm&fAEVjlV>4!3wdg_86Zu$w7Vij&iS133To1ONa4
literal 0
HcmV?d00001
diff --git a/mail_tracking/data/tracking_data.xml b/mail_tracking/data/tracking_data.xml
new file mode 100644
index 0000000..4bcb2cb
--- /dev/null
+++ b/mail_tracking/data/tracking_data.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ MailTracking Timestamp
+ 6
+
+
+
+
diff --git a/mail_tracking/hooks.py b/mail_tracking/hooks.py
new file mode 100644
index 0000000..8d3dc43
--- /dev/null
+++ b/mail_tracking/hooks.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import logging
+from psycopg2.extensions import AsIs
+
+_logger = logging.getLogger(__name__)
+
+
+def column_exists(cr, table, column):
+ cr.execute("""
+ SELECT column_name
+ FROM information_schema.columns
+ WHERE table_name = %s AND column_name = %s""", (table, column))
+ return bool(cr.fetchall())
+
+
+def column_add_with_value(cr, table, column, field_type, value):
+ if not column_exists(cr, table, column):
+ cr.execute("""
+ ALTER TABLE %s
+ ADD COLUMN %s %s""", (AsIs(table), AsIs(column), AsIs(field_type)))
+ cr.execute("""
+ UPDATE %s SET %s = %s""", (AsIs(table), AsIs(column), value))
+
+
+def pre_init_hook(cr):
+ _logger.info("Creating res.partner.tracking_emails_count column "
+ "with value 0")
+ column_add_with_value(
+ cr, "res_partner", "tracking_emails_count", "integer", 0)
+ _logger.info("Creating res.partner.email_score column "
+ "with value 50.0")
+ column_add_with_value(
+ cr, "res_partner", "email_score", "double precision", 50.0)
diff --git a/mail_tracking/hooks.pyc b/mail_tracking/hooks.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5fcfba9f61aa7499cdda50ddedcda0826499d118
GIT binary patch
literal 1598
zcmb_cO>Yx15Vd!cG%2lGsJL-hAr<99QXwHgf~p}2q9{$#CRL?gtnIFoEZwZ5wbKtN
zxA3d@Pn`Gx@Wz{_1?5Ip@nmd|{p@-3?EczZ|1tl08nVUb;Qs(ke}Rec<1At9EcYFj
za5i?>nZvkb?3>GEfz3HPE3(LC-w{`0QNcQEEGk;3Ok4D-C2SY}#@DTKxTXNp(1$v7
z;ZUQ2CYpW$GsETEb@snQuMHfmw$c#4?G5xtU1I&Sj8H<%3c36ab5A1cBlzHX~sXb}*p{
zp7AHV*{^jW+owmbm(Ogl@nwpm09h!paf(QCt8GRnwmw`dvtQop4{6rR99Fj7Ap$nnF$9B$HvRA?qQbFm`xwr%sWm
zA@Hp_=>hO55B43hcB+6$P&>Jv}Z#pjDv9?-4-{ysm1r7|A!bIPM
zYBGFPlh;P3bP;W<)=>0NnofR&GJ3*3OG5Zt=;TFC7xEv&+}*``|M{K}+WWDJrit7q
R&DeU~;M>lYTPas6e*hJ#ZR7v|
literal 0
HcmV?d00001
diff --git a/mail_tracking/i18n/am.po b/mail_tracking/i18n/am.po
new file mode 100644
index 0000000..d35d4ba
--- /dev/null
+++ b/mail_tracking/i18n/am.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: am\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/ca.po b/mail_tracking/i18n/ca.po
new file mode 100644
index 0000000..544b533
--- /dev/null
+++ b/mail_tracking/i18n/ca.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Creat per"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creat el"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Darrera Actualització per"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Darrera Actualització el"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/de.po b/mail_tracking/i18n/de.po
new file mode 100644
index 0000000..5f34e1d
--- /dev/null
+++ b/mail_tracking/i18n/de.po
@@ -0,0 +1,449 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+# Ermin Trevisan , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: Ermin Trevisan , 2016\n"
+"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Anzeigename"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr "Email"
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Zuletzt geändert am"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Zuletzt geändert von"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/el_GR.po b/mail_tracking/i18n/el_GR.po
new file mode 100644
index 0000000..1e36d9e
--- /dev/null
+++ b/mail_tracking/i18n/el_GR.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: el_GR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Δημιουργήθηκε από "
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Δημιουργήθηκε στις"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "Κωδικός"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Τελευταία ενημέρωση από"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Τελευταία ενημέρωση στις"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/es.po b/mail_tracking/i18n/es.po
new file mode 100644
index 0000000..1524845
--- /dev/null
+++ b/mail_tracking/i18n/es.po
@@ -0,0 +1,440 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-08-08 00:45+0000\n"
+"PO-Revision-Date: 2016-08-08 00:45+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr "Fecha"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Nombre mostrado"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr "Correo electrónico"
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Última modificación en"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr "Mes"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/es_ES.po b/mail_tracking/i18n/es_ES.po
new file mode 100644
index 0000000..096b0ed
--- /dev/null
+++ b/mail_tracking/i18n/es_ES.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/es_ES/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_ES\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/fi.po b/mail_tracking/i18n/fi.po
new file mode 100644
index 0000000..2119a94
--- /dev/null
+++ b/mail_tracking/i18n/fi.po
@@ -0,0 +1,449 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+# Jarmo Kortetjärvi , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: Jarmo Kortetjärvi , 2016\n"
+"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Luonut"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Luotu"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Nimi"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Viimeksi muokattu"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Viimeksi päivittänyt"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Viimeksi päivitetty"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr "Tila"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/fr.po b/mail_tracking/i18n/fr.po
new file mode 100644
index 0000000..ceb2230
--- /dev/null
+++ b/mail_tracking/i18n/fr.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-02 02:43+0000\n"
+"PO-Revision-Date: 2016-09-02 02:43+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr "Erreurs de remise"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr "Descriptif du rebond"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr "Type de rebond"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr "Rebonds"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr "Cliquer"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr "Cliqué"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr "URL cliquée"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr "Pays"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Créée par"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Créée le"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr "Déférer"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr "Livré"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Nom à afficher"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr "Nom affiché"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr "Courriel"
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr "Score du courriel"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr "Erreur"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr "Erreur du serveur SMTP"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr "Desciptif de l'erreur"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr "Type d'erreur"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr "Type d'évènement"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr "Échec"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr "Regrouper par"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr "Est mobile?"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Dernière modification par"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Modifié le"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr "Suivi du courriel: courriel"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr "Suivi du courriel: recherche du courriel"
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr "Suivi du courriel: courriels"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr "Suivi du courriel: évènement"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr "Suivi du courriel: recherche d'un évènement"
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr "Suivi du courriel: évènements"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr "Message"
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr "Destinataire du courriel"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr "Mois"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr "Ouverte"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr "Famille du système d'exploitation"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr "Courriels sortants"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr "Partenaire"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr "Destinataire"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr "Courriel du destinataire "
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr "Adresse de courriel du destinataire"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr "Refusé"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr "Serveur SMTP"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr "Émetteur"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr "Courriel de l'expéditeur"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr "Envoyé"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr "Pourriel"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr "État"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr "Objet"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr "Heure"
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr "Suivi du courriel: courriels"
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr "Suivi du courriel: nombre de courriels"
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr "Suivi du courriel: évènements"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr "Type"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr "URL"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr "Horodatage en UTC"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr "Se désabonner"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr "Désincrit"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr "IP de l'utilisateur"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr "Navigateur"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr "Famille du navigateur"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr "type de navigateur"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr "Pays de l'utilisateur"
diff --git a/mail_tracking/i18n/gl.po b/mail_tracking/i18n/gl.po
new file mode 100644
index 0000000..6c5aadd
--- /dev/null
+++ b/mail_tracking/i18n/gl.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creado en"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "ültima actualización por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización en"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/it.po b/mail_tracking/i18n/it.po
new file mode 100644
index 0000000..2957c50
--- /dev/null
+++ b/mail_tracking/i18n/it.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Creato da"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Creato il"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Nome da visualizzare"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Ultima modifica il"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Ultimo aggiornamento di"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Ultimo aggiornamento il"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/nl.po b/mail_tracking/i18n/nl.po
new file mode 100644
index 0000000..71b4a97
--- /dev/null
+++ b/mail_tracking/i18n/nl.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Te tonen naam"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr "Groepeer op"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Laatst bijgewerkt op"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr "Relatie"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr "Type"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/pt.po b/mail_tracking/i18n/pt.po
new file mode 100644
index 0000000..b3b8c35
--- /dev/null
+++ b/mail_tracking/i18n/pt.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Criado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Criado em"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Atualizado pela última vez por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Atualizado pela última vez em"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/pt_BR.po b/mail_tracking/i18n/pt_BR.po
new file mode 100644
index 0000000..a974729
--- /dev/null
+++ b/mail_tracking/i18n/pt_BR.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Criado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Criado em"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "Identificação"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Última atualização por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Última atualização em"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/pt_PT.po b/mail_tracking/i18n/pt_PT.po
new file mode 100644
index 0000000..d7e0d2b
--- /dev/null
+++ b/mail_tracking/i18n/pt_PT.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Criado por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Criado em"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Atualizado pela última vez por"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Atualizado pela última vez em"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/i18n/sl.po b/mail_tracking/i18n/sl.po
new file mode 100644
index 0000000..93a1695
--- /dev/null
+++ b/mail_tracking/i18n/sl.po
@@ -0,0 +1,458 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+# Matjaž Mozetič , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-02 02:43+0000\n"
+"PO-Revision-Date: 2016-09-02 02:43+0000\n"
+"Last-Translator: Matjaž Mozetič , 2016\n"
+"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+" * Stanje 'Napaka' pomeni, da je prišlo do napake pri pošiljanju e-pošte, npr. 'Ni veljavnih prejemnikov'\n"
+" * Stanje 'Poslano' pomeni, da je bilo sporočilo uspešno poslano preko izhodnega e-poštnega strežnika (SMTP).\n"
+" * Stanje 'Dostavljeno' pomeni, da je bilo sporočilo uspešno dostavljeno na prejemnikov Mail Exchange (MX) strežnik.\n"
+" * Stanje 'Odprto' pomeni, da je prejemnik sporočilo odprl ali kliknil.\n"
+" * Stanje 'Zavrnjeno' pomeni, da je prejemnikov e-poštni naslov na črni listi odhodnega e-poštnega strežnika (SMTP). Priporočeno je, da se ta e-poštni naslov izbriše.\n"
+" * Stanje 'Neželjeno' pomeni, da izhodni strežnik (SMTP) obravnava to sporočilo kot neželjeno pošto.\n"
+" * Stanje 'Izpisan' pomeni, da je prejemnik zahteval izpis iz seznama prejemnikov tega sporočila.\n"
+" * Stanje 'Odbito' pomeni, da je bilo sporočilo odbito s strani prejemnikovega Mail Exchange (MX) strežnika.\n"
+" * Stanje 'Mehko odbito' pomeni, da je bilo sporočilo 'mehko' odbito s strani prejemnikovega Mail Exchange (MX) strežnika.\n"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr "Odboj"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr "Opis odboja"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr "Tip odboja"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr "Odbito"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr "Kilk"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr "Kliknjeno"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr "Kliknjena URL"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr "Država"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Ustvaril"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Ustvarjeno"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr "Odložitev"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr "Odloženo"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr "Dostavljeno"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr "Prikazni naziv"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr "Prikazni naziv"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr "E-pošta"
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr "Točkovanje e-pošte"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr "Napaka"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr "Napaka SMTP strežnika"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr "Opis napake"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr "Podrobnosti o napaki"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr "Tip napake"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr "Tip dogodka"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr "Neuspelo"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr "Združi po"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr "Trdo odbito"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr "Mobilno?"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr "Zadnjič spremenjeno"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Zadnji posodobil"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Zadnjič posodobljeno"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr "Sledenje e-pošte"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr "Iskalnik sledenja e-pošte"
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr "Sporočila sledenja"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr "Dogodek sledenja e-pošte"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr "Iskalnik dogodkov sledenja e-pošte"
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr "Dogodki sledenja e-pošte"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr "Sporočilo"
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr "Sledenje sporočila"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr "Mesec"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr "Odprto"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr "Družina operacijskega sistema"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr "Izhodna pošta"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr "Prejemnik"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr "Prejemnikova e-pošta"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr "Prejemnikova e-pošta"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr "Zavrnjeno"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr "SMTP strežnik"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr "Pošiljatelj"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr "Pošiljateljeva e-pošta"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr "Poslano"
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr "Mehki odboj"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr "Mehko odbito"
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr "Spam"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr "Stanje"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr "Zadeva"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr "Čas"
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr "Sledilna e-pošta"
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr "Števec sledenja e-pošte"
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr "Sledilni dogodki"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr "Tip"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr "URL"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr "UTC časovni žig"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr "Odjava"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr "Odjavljeno"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr "Uporabnikov IP"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr "Uporabnikov odjemalec"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr "Družina uporabnikovih odjemalcev"
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr "Tip uporabnikovega odjemalca"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr "Država uporabnika"
diff --git a/mail_tracking/i18n/tr.po b/mail_tracking/i18n/tr.po
new file mode 100644
index 0000000..f9d8fe8
--- /dev/null
+++ b/mail_tracking/i18n/tr.po
@@ -0,0 +1,448 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * mail_tracking
+#
+# Translators:
+# OCA Transbot , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-09-14 07:21+0000\n"
+"PO-Revision-Date: 2016-09-14 07:21+0000\n"
+"Last-Translator: OCA Transbot , 2016\n"
+"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: mail_tracking
+#: help:mail.tracking.email,state:0
+msgid ""
+" * The 'Error' status indicates that there was an error when trying to sent the email, for example, 'No valid recipient'\n"
+" * The 'Sent' status indicates that message was succesfully sent via outgoing email server (SMTP).\n"
+" * The 'Delivered' status indicates that message was succesfully delivered to recipient Mail Exchange (MX) server.\n"
+" * The 'Open' status indicates that message was opened or clicked by recipient.\n"
+" * The 'Rejected' status indicates that recipient email address is blacklisted by outgoing email server (SMTP). It is recomended to delete this email address.\n"
+" * The 'Spam' status indicates that outgoing email server (SMTP) consider this message as spam.\n"
+" * The 'Unsubscribed' status indicates that recipient has requested to be unsubscribed from this message.\n"
+" * The 'Bounced' status indicates that message was bounced by recipient Mail Exchange (MX) server.\n"
+" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_description:0
+msgid "Bounce description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,bounce_type:0
+msgid "Bounce type"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Click"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Clicked"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,url:0
+msgid "Clicked URL"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "Country"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_uid:0
+#: field:mail.tracking.event,create_uid:0
+msgid "Created by"
+msgstr "Oluşturan"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,create_date:0
+#: field:mail.tracking.event,create_date:0
+msgid "Created on"
+msgstr "Oluşturuldu"
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,date:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Deferral"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+msgid "Deferred"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Delivered"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,display_name:0
+msgid "Display Name"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,display_name:0
+msgid "Display name"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,mail_id:0
+msgid "Email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,email_score:0
+msgid "Email score"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "Error"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_smtp_server:0
+msgid "Error SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_description:0
+#: field:mail.tracking.event,error_description:0
+msgid "Error description"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,error_details:0
+msgid "Error details"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,error_type:0
+#: field:mail.tracking.event,error_type:0
+msgid "Error type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,event_type:0
+msgid "Event type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Failed"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Group By"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Hard bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,id:0 field:mail.tracking.event,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: mail_tracking
+#: field:mail.tracking.event,mobile:0
+msgid "Is mobile?"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,__last_update:0
+#: field:mail.tracking.event,__last_update:0
+msgid "Last Modified on"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_uid:0 field:mail.tracking.event,write_uid:0
+msgid "Last Updated by"
+msgstr "Son güncelleyen"
+
+#. module: mail_tracking
+#: field:mail.tracking.email,write_date:0
+#: field:mail.tracking.event,write_date:0
+msgid "Last Updated on"
+msgstr "Son güncelleme"
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_email
+msgid "MailTracking email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+msgid "MailTracking email search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_email
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "MailTracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_form
+msgid "MailTracking event"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "MailTracking event search"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.actions.act_window,name:mail_tracking.action_view_mail_tracking_event
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+msgid "MailTracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_message
+#: field:mail.tracking.email,mail_message_id:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,tracking_email_id:0
+msgid "Message"
+msgstr ""
+
+#. module: mail_tracking
+#. openerp-web
+#: code:addons/mail_tracking/static/src/js/mail_tracking.js:30
+#, python-format
+msgid "Message tracking"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Month"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Open"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,os_family:0
+msgid "Operating system family"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.model,name:mail_tracking.model_res_partner
+#: field:mail.tracking.email,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,recipient:0
+msgid "Recipient"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient:0
+msgid "Recipient email"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,recipient_address:0
+msgid "Recipient email address"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Rejected"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,smtp_server:0
+msgid "SMTP server"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_tree
+msgid "Sender"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,sender:0
+msgid "Sender email"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: selection:mail.tracking.event,event_type:0
+msgid "Sent"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.event,event_type:0
+msgid "Soft bounce"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+msgid "Soft bounced"
+msgstr ""
+
+#. module: mail_tracking
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Spam"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,state:0
+msgid "State"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: field:mail.tracking.email,time:0
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,time:0
+msgid "Time"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_email
+#: view:res.partner:mail_tracking.view_partner_form
+#: field:res.partner,tracking_email_ids:0
+msgid "Tracking emails"
+msgstr ""
+
+#. module: mail_tracking
+#: field:res.partner,tracking_emails_count:0
+msgid "Tracking emails count"
+msgstr ""
+
+#. module: mail_tracking
+#: model:ir.ui.menu,name:mail_tracking.menu_mail_tracking_event
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: field:mail.tracking.email,tracking_event_ids:0
+msgid "Tracking events"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Type"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "URL"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.email,timestamp:0 field:mail.tracking.event,timestamp:0
+msgid "UTC timestamp"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+msgid "Unsubscribe"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_search
+#: selection:mail.tracking.email,state:0
+#: selection:mail.tracking.event,event_type:0
+msgid "Unsubscribed"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ip:0
+msgid "User IP"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.email:mail_tracking.view_mail_tracking_email_form
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_tree
+#: field:mail.tracking.event,user_agent:0
+msgid "User agent"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,ua_family:0
+msgid "User agent family"
+msgstr ""
+
+#. module: mail_tracking
+#: view:mail.tracking.event:mail_tracking.view_mail_tracking_event_search
+#: field:mail.tracking.event,ua_type:0
+msgid "User agent type"
+msgstr ""
+
+#. module: mail_tracking
+#: field:mail.tracking.event,user_country_id:0
+msgid "User country"
+msgstr ""
diff --git a/mail_tracking/models/__init__.py b/mail_tracking/models/__init__.py
new file mode 100644
index 0000000..42a28f5
--- /dev/null
+++ b/mail_tracking/models/__init__.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+# flake8: noqa
+
+from . import ir_mail_server
+from . import mail_mail
+from . import mail_message
+from . import mail_tracking_email
+from . import mail_tracking_event
+from . import res_partner
diff --git a/mail_tracking/models/__init__.pyc b/mail_tracking/models/__init__.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2250ce97b6d1232187353edc366e3b3651c026fe
GIT binary patch
literal 444
zcmZvY&rZZ35Qm4-c6I#|6JMeiOt=uTj2p6TX#m%F_N{y;PriTySlxp(
z^Of&MCY{2+&ek9ApHCb3SrxtSsDdF-83qHu$Urh+$*b%Y$f`Kc&O!3xb@m!$UA)QO
zfNYAl*;|k;`3fGpBl?hKgf1bTC-rL7c2EKR9(~D=DbHa-iB5kb3_)+Pq?bz?z25BX
zv{m@m^3UNOr&u~qsMBLmv-WX9|In={h*Z#Lr1|=EK|N2X6BL`i}0+R
zaqjBX`JJ&|Xk*+I#O$3B`EQmX#pnzUK`3P>8ylrV8)`SbTJl`9V
BTR#8*
literal 0
HcmV?d00001
diff --git a/mail_tracking/models/ir_mail_server.py b/mail_tracking/models/ir_mail_server.py
new file mode 100644
index 0000000..e364a57
--- /dev/null
+++ b/mail_tracking/models/ir_mail_server.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import re
+import threading
+from openerp import models, api, tools
+
+
+class IrMailServer(models.Model):
+ _inherit = "ir.mail_server"
+
+ def _tracking_headers_add(self, tracking_email_id, headers):
+ """Allow other addons to add its own tracking SMTP headers"""
+ headers = headers or {}
+ headers['X-Odoo-Database'] = getattr(
+ threading.currentThread(), 'dbname', None),
+ headers['X-Odoo-Tracking-ID'] = tracking_email_id
+ return headers
+
+ def _tracking_email_id_body_get(self, body):
+ body = body or ''
+ tracking_email_id = False
+ # https://regex101.com/r/lW4cB1/2
+ match = re.search(
+ r']* data-odoo-tracking-email=["\']([0-9]*)["\']', body)
+ if match:
+ try:
+ tracking_email_id = int(match.group(1))
+ except: # pragma: no cover
+ pass
+ return tracking_email_id
+
+ 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'):
+ tracking_email_id = self._tracking_email_id_body_get(body)
+ if tracking_email_id:
+ headers = self._tracking_headers_add(tracking_email_id, headers)
+ msg = super(IrMailServer, self).build_email(
+ email_from, email_to, subject, body, email_cc=email_cc,
+ email_bcc=email_bcc, reply_to=reply_to, attachments=attachments,
+ message_id=message_id, references=references, object_id=object_id,
+ subtype=subtype, headers=headers,
+ body_alternative=body_alternative,
+ subtype_alternative=subtype_alternative)
+ return msg
+
+ def _tracking_email_get(self, message):
+ tracking_email_id = False
+ if message.get('X-Odoo-Tracking-ID', '').isdigit():
+ tracking_email_id = int(message['X-Odoo-Tracking-ID'])
+ return self.env['mail.tracking.email'].browse(tracking_email_id)
+
+ def _smtp_server_get(self, mail_server_id, smtp_server):
+ smtp_server_used = False
+ mail_server = None
+ if mail_server_id:
+ mail_server = self.browse(mail_server_id)
+ elif not smtp_server:
+ mail_server_ids = self.search([], order='sequence', limit=1)
+ mail_server = mail_server_ids[0] if mail_server_ids else None
+ if mail_server:
+ smtp_server_used = mail_server.smtp_host
+ else: # pragma: no cover
+ smtp_server_used = smtp_server or tools.config.get('smtp_server')
+ return smtp_server_used
+
+ @api.model
+ def send_email(self, message, mail_server_id=None, smtp_server=None,
+ smtp_port=None, smtp_user=None, smtp_password=None,
+ smtp_encryption=None, smtp_debug=False):
+ message_id = False
+ tracking_email = self._tracking_email_get(message)
+ smtp_server_used = self._smtp_server_get(
+ mail_server_id, smtp_server)
+ try:
+ message_id = super(IrMailServer, self).send_email(
+ message, mail_server_id=mail_server_id,
+ smtp_server=smtp_server, smtp_port=smtp_port,
+ smtp_user=smtp_user, smtp_password=smtp_password,
+ smtp_encryption=smtp_encryption, smtp_debug=smtp_debug)
+ except Exception as e:
+ if tracking_email:
+ tracking_email.smtp_error(self, smtp_server_used, e)
+ raise
+ if message_id and tracking_email:
+ vals = tracking_email._tracking_sent_prepare(
+ self, smtp_server_used, message, message_id)
+ if vals:
+ self.env['mail.tracking.event'].sudo().create(vals)
+ return message_id
diff --git a/mail_tracking/models/ir_mail_server.pyc b/mail_tracking/models/ir_mail_server.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ebd8cf552f456c86c90f9d2c1d81dd2a684c0049
GIT binary patch
literal 3878
zcmcInU2`MF6}_X8WXm7>8OSzeYV
z$ce~jdn?qm+iO8<`8_`U9(VF>h)G?TvGW{f)6#Q^uWQU~pm*Ee$;$Drv4_Uy80&`*
z{)XnDS`5rnllB_i0~^AmqM@Cp6s!E1_M)@sV}Z`YSlYNQw6CSFV7{%Lj+iwWtuI%G
z_0P1e$d@Z}0&i?cvfJy>mstw_rPR@u}EmS*W2%BJ{x4txGSe~_ZIJO-+sT}YhvE7
zKn#t~ytkg`^#>MOv4!8nD4$ttDt}KWJzwb8l?fnoAU*>BI#i>z8m4zx^7}&!C
zQQ>Z*w=*$CneDj!w5FX;Yx}q;?M^uH&eYb$jw)H|+zFwyQ`+
z!HoV0;TJPV@WcB1Pwq+-MUW3Fje=cuY#-WS!yh4Tm6Kuj;TP{dy3s9w$+n()Y4x@`
z?45@%eg4X$-ow|o-+FZ8RUMQOUe(Of-1#sYJL7oR;&0MMjXwBzXOj%rA+(p_9lZ3^x_4O#uXO5`h9kHHcM6HsFSLf%Ck@
z6r6)OFavtP0%U(n=7@r}%-5t?k-5^td_#&3H5Y3#zaYiB%rDAGbN%?T%r7HtNmqTp
z3K>qC=bAuaFu;h9teK9FQeXRZ43K15elS5oIZsHCuPz&!6xqU|HTwqHmKv>cPn5
zo)4L$ZZ_~oQaI6m_zCt%*t^Q
zGPg&^hv=b6;V}EQo}4)-PP4Fx1}5A$`6b0QiYoOkenY|SlHXEvDY%D*
z@Wc(zD=d?junC)c9zt3d5p~Z+7tyZZ%NXnga-cuhH0C})ClCSxXao+&4}6Z0QdYNb
zXprgrRv-dqKY~=*VQYkl!a^2DW?}y)NH|fVq6f)rHQEVBVC$zYkaIwgC@o@4J$+st*3kQ5;=|nEV}Hji5IFf-bT!IpE>Fd#
zZvGk_x)~K4QnS^*tbPmxjAU<0^){X9zR>wthM}mUmTH|pi5kc7c1!H1n%yngs+Q`A
zNmJ~U63Aei>Y7&Sub2q9&Wu0-ZRHf@_T3(R*4HGdEsCp#y)#c{%uAgfmy^;fIiuFY
zct*6F`03(u(BpX(v_yM1IAp$RPV2&h+WCY`uBhd8wOCBlzO*pgI^Ad1ojF;WHK~ICyvlan&UWY=m0e60{puGU12jw@eMLAE%1M*#s
zg8!kzC;;6egFw=uxPo^vL?GaYii={rE=M0S8*mlDBW5Fz*CfOm@;ZPIOpgU%dOQWw
zgVzBwczqQ}uV9z^)tl0U_aCo`{f|V)8xn!}?Z3(YhzO`g2>}1&))paz{wY#L@&F~m
ze#<36j#ifoVQ>ePL5??BF8CB?qn@nF)@V&mFn~5xs7RtG-?BtudAMEn6Xr;OmR?au
zPHXE=qXh_Cy^DosnRB=>6^gOWATaIG)R%RoMMUQcGnftCkI>2?YL6DK5TU>0=Dc|(
zFH$f&gA!9M>Vewv!9Q~IgB^^uu#$v&n)eRM(kqtf)hv<6`MekH9NE
zC9kpf?EJ}}Ib`T0Z&Un*;uZz#i05lddJLs1`2(kTOES9AA#OvO2o
zN*(Gc7OvzJCmvU6NbkgI*6EqG_w!z{H6~c4-E|1$a-*}_*^E`Q6y;v^y7=;hiWD
xAE_rHyKAYcr=~J?nqVvmO%Jrk|C{dc-$T`YuJ)^gZv}V1%Y7Y
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import time
+from datetime import datetime
+from email.utils import COMMASPACE
+
+from openerp import models, api, fields
+
+
+class MailMail(models.Model):
+ _inherit = 'mail.mail'
+
+ @api.model
+ def _tracking_email_prepare(self, mail, partner, email):
+ ts = time.time()
+ dt = datetime.utcfromtimestamp(ts)
+ email_to_list = email.get('email_to', [])
+ email_to = COMMASPACE.join(email_to_list)
+ return {
+ 'name': email.get('subject', False),
+ 'timestamp': '%.6f' % ts,
+ 'time': fields.Datetime.to_string(dt),
+ 'mail_id': mail.id if mail else False,
+ 'mail_message_id': mail.mail_message_id.id if mail else False,
+ 'partner_id': partner.id if partner else False,
+ 'recipient': email_to,
+ 'sender': mail.email_from,
+ }
+
+ @api.model
+ def send_get_email_dict(self, mail, partner=None):
+ email = super(MailMail, self).send_get_email_dict(
+ mail, partner=partner)
+ m_tracking = self.env['mail.tracking.email']
+ tracking_email = False
+ if mail:
+ vals = self._tracking_email_prepare(mail, partner, email)
+ tracking_email = m_tracking.sudo().create(vals)
+ if tracking_email:
+ email = tracking_email.tracking_img_add(email)
+ return email
diff --git a/mail_tracking/models/mail_mail.pyc b/mail_tracking/models/mail_mail.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9fcb77de12adc60b75720817db6197ebca3ebc9e
GIT binary patch
literal 1902
zcmcIlOO7K&5RI(zr@wU51H&{R0ShE=uvd765JL~_+MwzM!kbdzOq;5yk5!o-gya@T
zJ%`{F9DoaO8de+t-ixv^?3wD$sLY7S$aoPi%kiJ*C%--X@y$YZPmK3x7~Vlx{2M7n
z=G{D!(nw`wZp6?QOBqQO%RKJZJt=!q^=00dY9RB0R705$Ve5(
zLsSSnrdUwLl=;5F@V`R@kwQ`4_aqo8BH8vB<-RXlghpH=D>y`QKakLq0{VeE3?)C>
z`$U8Z9~63OdkpayrJRN#Ygru2w$Cl7=yYqO{YfB;6RBfvv%^mNi)v5*WjKN%lJ-}D
zJh&f2I~04OyNWZhr!u`8odL^CtLX?f4Gj(l#?5zyTLdI7QfHO(oP0Q*E(2@B#`%y{
zYqfKwn>0Xf!v$P)4lkdrTnZgKyw2KCyOv8vY26}U=dKRgSMO@;+R-@-37r!R36~I?
zuvoTDbvTr5Ub&DcnV4A75$w552wn5)kn@ZY
z`>de6E0;PU5Jk7kUeD1T8Yg&t*$|ldzJ_U;`;d^qBaBY?XP8YYXY*|0muX|0=A$2)
z_PNd5NoH+R`^ma(?4)Z$n=PIr*GYE+IwdXR^^f5#1WLosBkj&yw+;z9mfpV&A<>z+
zFjp9{d1Ov89-C{7p;@qe>@mxveEt~|@EJ7TDq~4zunx-z^fUJ{^`vwp*Q9$-Sq?&4
zHGtXb3f@1&q&sL_fY#VE+>^d9wUEv2mJ;NqGj2<)`WPPxW;IKgx_<ts^%`ul*ruUae9zLO)l@
z6YjgFU`ok5bR;dSe+nO7qwYUl&@*0ugRh|L$p<*@eGLBwghUr;?YSA??@jXr^2*FQ
z_L9PB%1fK3nsS
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openerp import models, api
+import logging
+_logger = logging.getLogger(__name__)
+
+
+class MailMessage(models.Model):
+ _inherit = "mail.message"
+
+ def _tracking_status_map_get(self):
+ return {
+ 'False': 'waiting',
+ 'error': 'error',
+ 'deferred': 'sent',
+ 'sent': 'sent',
+ 'delivered': 'delivered',
+ 'opened': 'opened',
+ 'rejected': 'error',
+ 'spam': 'error',
+ 'unsub': 'opened',
+ 'bounced': 'error',
+ 'soft-bounced': 'error',
+ }
+
+ def _partner_tracking_status_get(self, tracking_email):
+ tracking_status_map = self._tracking_status_map_get()
+ status = 'unknown'
+ if tracking_email:
+ tracking_email_status = str(tracking_email.state)
+ status = tracking_status_map.get(tracking_email_status, 'unknown')
+ return status
+
+ @api.model
+ def _message_read_dict_postprocess(self, messages, message_tree):
+ res = super(MailMessage, self)._message_read_dict_postprocess(
+ messages, message_tree)
+ for message_dict in messages:
+ mail_message_id = message_dict.get('id', False)
+ if mail_message_id:
+ partner_trackings = {}
+ for partner in message_dict.get('partner_ids', []):
+ partner_id = partner[0]
+ tracking_email = self.env['mail.tracking.email'].search([
+ ('mail_message_id', '=', mail_message_id),
+ ('partner_id', '=', partner_id),
+ ], limit=1)
+ status = self._partner_tracking_status_get(tracking_email)
+ partner_trackings[str(partner_id)] = (
+ status, tracking_email.id)
+ message_dict['partner_trackings'] = partner_trackings
+ return res
diff --git a/mail_tracking/models/mail_message.pyc b/mail_tracking/models/mail_message.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c9400ad35e63e8de737b023ed7e5e859acd9baf1
GIT binary patch
literal 2145
zcmcIlOK%)S5U!rtx9zNWB*NkqA`ZhLUWtQG21O9T1zTc#uwp41O=fyGvz`~-y>XCs
zPs>l@g!l>k2L1sjegJ$`J!=QS5%11acU5;+SAF%E@Xv$EFWWyZGU|RI#wU2~8Ay&t
zQAt!Ox>QsJbQzFhX+UL2mm%qpmOava+G59ma!3>{hcs7|_vk00Ezz^f5g#~@`cPT?
zgTF;Umfjj)*OIixyw
zV`0kTm1d41Yg%1n%DaqS>db+Wvu#?5x>apgFXXxx&8p6HE{@w~?jCo72xlo`&%0a8
zxfikAehV_IbY7%0J5QRtX&zrU<|;4DEY0(#wzJkW`HYcFoJq4Qcr^2Y^ui9_qxMJl
z9(3JoN~}xW$|hCXCJXHt7Rwt*g=+X8|BR!~P~F7m379p}Qu1me(cgr$R%A}dDV{6?
z4*I4?>wuP6LhKZ61H!f%XG5eRYxUt+)mL?MT}yVvQ-~!ItuulnTdPF^VB0iU(%+=)!O_k0&s}eB{4|ts{#H~bzfzS
zG}j;}t5n4Am^eHD7oY>vfKdjx9@E#qGW+!T&jNXmAqU>bDqil>x=-deDu^}%dcEan
z@P>dEqU-7Nk~TwHqm)8A+>9i&eQq3wT)~(PSi>Agum$rG&ldK`QaH|a0WmPa$*9(Bf5}$V1LgXXGM`q1KOchI*jky;URWR2CJAUyAOnH&%BlZNz7M;;mY3Vm8Qq1d{Bu
z8=dA!USuw58|zSn8Twev#>LzKBvp0&%4eNUP4+V8@`?|c@SPF6>XVq;N2k|1X^g%n
zB2~0cdZYijz!%5wvx1L7q`!0?#viiuT_z7e?k1t*PoVl!y!Igo1yiK$fqGj~_fSnR
z-v>8V)8L`Hry}-GdSsH+X{D1yLXsrtQ>&6$-jEdaOKl1#wePW#_;AmWh9;NZ`XjUd
zvp-6ZIqsItK@|q$>39@z(-(lH*PAv5PqCQBg;_R>1%E|&8!Gubu*jFsz{#P6*R}6q
cr~G}DTkg;c!Sci-`z2#%`8)Lh0hxw>1MH&X761SM
literal 0
HcmV?d00001
diff --git a/mail_tracking/models/mail_tracking_email.py b/mail_tracking/models/mail_tracking_email.py
new file mode 100644
index 0000000..d063581
--- /dev/null
+++ b/mail_tracking/models/mail_tracking_email.py
@@ -0,0 +1,312 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import logging
+import urlparse
+import time
+import re
+from datetime import datetime
+
+from openerp import models, api, fields, tools
+import openerp.addons.decimal_precision as dp
+
+_logger = logging.getLogger(__name__)
+
+EVENT_OPEN_DELTA = 10 # seconds
+EVENT_CLICK_DELTA = 5 # seconds
+
+
+class MailTrackingEmail(models.Model):
+ _name = "mail.tracking.email"
+ _order = 'time desc'
+ _rec_name = 'display_name'
+ _description = 'MailTracking email'
+
+ name = fields.Char(string="Subject", readonly=True, index=True)
+ display_name = fields.Char(
+ string="Display name", readonly=True, store=True,
+ compute="_compute_display_name")
+ timestamp = fields.Float(
+ string='UTC timestamp', readonly=True,
+ digits=dp.get_precision('MailTracking Timestamp'))
+ time = fields.Datetime(string="Time", readonly=True)
+ date = fields.Date(
+ string="Date", readonly=True, compute="_compute_date", store=True)
+ mail_message_id = fields.Many2one(
+ string="Message", comodel_name='mail.message', readonly=True)
+ mail_id = fields.Many2one(
+ string="Email", comodel_name='mail.mail', readonly=True)
+ partner_id = fields.Many2one(
+ string="Partner", comodel_name='res.partner', readonly=True)
+ recipient = fields.Char(string='Recipient email', readonly=True)
+ recipient_address = fields.Char(
+ string='Recipient email address', readonly=True, store=True,
+ compute='_compute_recipient_address')
+ sender = fields.Char(string='Sender email', readonly=True)
+ state = fields.Selection([
+ ('error', 'Error'),
+ ('deferred', 'Deferred'),
+ ('sent', 'Sent'),
+ ('delivered', 'Delivered'),
+ ('opened', 'Opened'),
+ ('rejected', 'Rejected'),
+ ('spam', 'Spam'),
+ ('unsub', 'Unsubscribed'),
+ ('bounced', 'Bounced'),
+ ('soft-bounced', 'Soft bounced'),
+ ], string='State', index=True, readonly=True, default=False,
+ help=" * The 'Error' status indicates that there was an error "
+ "when trying to sent the email, for example, "
+ "'No valid recipient'\n"
+ " * The 'Sent' status indicates that message was succesfully "
+ "sent via outgoing email server (SMTP).\n"
+ " * The 'Delivered' status indicates that message was "
+ "succesfully delivered to recipient Mail Exchange (MX) server.\n"
+ " * The 'Opened' status indicates that message was opened or "
+ "clicked by recipient.\n"
+ " * The 'Rejected' status indicates that recipient email "
+ "address is blacklisted by outgoing email server (SMTP). "
+ "It is recomended to delete this email address.\n"
+ " * The 'Spam' status indicates that outgoing email "
+ "server (SMTP) consider this message as spam.\n"
+ " * The 'Unsubscribed' status indicates that recipient has "
+ "requested to be unsubscribed from this message.\n"
+ " * The 'Bounced' status indicates that message was bounced "
+ "by recipient Mail Exchange (MX) server.\n"
+ " * The 'Soft bounced' status indicates that message was soft "
+ "bounced by recipient Mail Exchange (MX) server.\n")
+ error_smtp_server = fields.Char(string='Error SMTP server', readonly=True)
+ error_type = fields.Char(string='Error type', readonly=True)
+ error_description = fields.Char(
+ string='Error description', readonly=True)
+ bounce_type = fields.Char(string='Bounce type', readonly=True)
+ bounce_description = fields.Char(
+ string='Bounce description', readonly=True)
+ tracking_event_ids = fields.One2many(
+ string="Tracking events", comodel_name='mail.tracking.event',
+ inverse_name='tracking_email_id', readonly=True)
+
+ @api.model
+ def tracking_ids_recalculate(self, model, email_field, tracking_field,
+ email, new_tracking=None):
+ objects = self.env[model].search([
+ (email_field, '=ilike', email),
+ ])
+ for obj in objects:
+ trackings = obj[tracking_field]
+ if new_tracking:
+ trackings |= new_tracking
+ trackings = trackings._email_score_tracking_filter()
+ if set(obj[tracking_field].ids) != set(trackings.ids):
+ if trackings:
+ obj.write({
+ tracking_field: [(6, False, trackings.ids)]
+ })
+ else:
+ obj.write({
+ tracking_field: [(5, False, False)]
+ })
+ return objects
+
+ @api.model
+ def _tracking_ids_to_write(self, email):
+ trackings = self.env['mail.tracking.email'].search([
+ ('recipient_address', '=ilike', email)
+ ])
+ trackings = trackings._email_score_tracking_filter()
+ if trackings:
+ return [(6, False, trackings.ids)]
+ else:
+ return [(5, False, False)]
+
+ @api.multi
+ def _email_score_tracking_filter(self):
+ """Default email score filter for tracking emails"""
+ # Consider only last 10 tracking emails
+ return self.sorted(key=lambda r: r.time, reverse=True)[:10]
+
+ @api.model
+ def email_score_from_email(self, email):
+ trackings = self.env['mail.tracking.email'].search([
+ ('recipient_address', '=ilike', email)
+ ])
+ return trackings.email_score()
+
+ @api.multi
+ def email_score(self):
+ """Default email score algorimth"""
+ score = 50.0
+ trackings = self._email_score_tracking_filter()
+ for tracking in trackings:
+ if tracking.state in ('error',):
+ score -= 50.0
+ elif tracking.state in ('rejected', 'spam', 'bounced'):
+ score -= 25.0
+ elif tracking.state in ('soft-bounced', 'unsub'):
+ score -= 10.0
+ elif tracking.state in ('delivered',):
+ score += 5.0
+ elif tracking.state in ('opened',):
+ score += 10.0
+ if score > 100.0:
+ score = 100.0
+ return score
+
+ @api.multi
+ @api.depends('recipient')
+ def _compute_recipient_address(self):
+ for email in self:
+ matches = re.search(r'<(.*@.*)>', email.recipient)
+ if matches:
+ email.recipient_address = matches.group(1)
+ else:
+ email.recipient_address = email.recipient
+
+ @api.multi
+ @api.depends('name', 'recipient')
+ def _compute_display_name(self):
+ for email in self:
+ parts = [email.name]
+ if email.recipient:
+ parts.append(email.recipient)
+ email.display_name = ' - '.join(parts)
+
+ @api.multi
+ @api.depends('time')
+ def _compute_date(self):
+ for email in self:
+ email.date = fields.Date.to_string(
+ fields.Date.from_string(email.time))
+
+ @api.model
+ def create(self, vals):
+ tracking = super(MailTrackingEmail, self).create(vals)
+ self.tracking_ids_recalculate(
+ 'res.partner', 'email', 'tracking_email_ids',
+ tracking.recipient_address, new_tracking=tracking)
+ return tracking
+
+ def _get_mail_tracking_img(self):
+ base_url = self.env['ir.config_parameter'].get_param('web.base.url')
+ path_url = (
+ 'mail/tracking/open/%(db)s/%(tracking_email_id)s/blank.gif' % {
+ 'db': self.env.cr.dbname,
+ 'tracking_email_id': self.id,
+ })
+ track_url = urlparse.urljoin(base_url, path_url)
+ return (
+ '' % {
+ 'url': track_url,
+ 'tracking_email_id': self.id,
+ })
+
+ @api.multi
+ def smtp_error(self, mail_server, smtp_server, exception):
+ self.sudo().write({
+ 'error_smtp_server': tools.ustr(smtp_server),
+ 'error_type': exception.__class__.__name__,
+ 'error_description': tools.ustr(exception),
+ 'state': 'error',
+ })
+ return True
+
+ @api.multi
+ def tracking_img_add(self, email):
+ self.ensure_one()
+ tracking_url = self._get_mail_tracking_img()
+ if tracking_url:
+ body = tools.append_content_to_html(
+ email.get('body', ''), tracking_url, plaintext=False,
+ container_tag='div')
+ email['body'] = body
+ return email
+
+ def _message_partners_check(self, message, message_id):
+ mail_message = self.mail_message_id
+ partners = mail_message.notified_partner_ids | mail_message.partner_ids
+ if (self.partner_id and self.partner_id not in partners):
+ # If mail_message haven't tracking partner, then
+ # add it in order to see his trackking status in chatter
+ if mail_message.subtype_id:
+ mail_message.sudo().write({
+ 'notified_partner_ids': [(4, self.partner_id.id)],
+ })
+ else:
+ mail_message.sudo().write({
+ 'partner_ids': [(4, self.partner_id.id)],
+ })
+ return True
+
+ @api.multi
+ def _tracking_sent_prepare(self, mail_server, smtp_server, message,
+ message_id):
+ self.ensure_one()
+ ts = time.time()
+ dt = datetime.utcfromtimestamp(ts)
+ self._message_partners_check(message, message_id)
+ self.sudo().write({'state': 'sent'})
+ return {
+ 'recipient': message['To'],
+ 'timestamp': '%.6f' % ts,
+ 'time': fields.Datetime.to_string(dt),
+ 'tracking_email_id': self.id,
+ 'event_type': 'sent',
+ 'smtp_server': smtp_server,
+ }
+
+ def _event_prepare(self, event_type, metadata):
+ self.ensure_one()
+ m_event = self.env['mail.tracking.event']
+ method = getattr(m_event, 'process_' + event_type, None)
+ if method and hasattr(method, '__call__'):
+ return method(self, metadata)
+ else: # pragma: no cover
+ _logger.info('Unknown event type: %s' % event_type)
+ return False
+
+ def _concurrent_events(self, event_type, metadata):
+ m_event = self.env['mail.tracking.event']
+ self.ensure_one()
+ concurrent_event_ids = False
+ if event_type in {'open', 'click'}:
+ ts = metadata.get('timestamp', time.time())
+ delta = EVENT_OPEN_DELTA if event_type == 'open' \
+ else EVENT_CLICK_DELTA
+ domain = [
+ ('timestamp', '>=', ts - delta),
+ ('timestamp', '<=', ts + delta),
+ ('tracking_email_id', '=', self.id),
+ ('event_type', '=', event_type),
+ ]
+ if event_type == 'click':
+ domain.append(('url', '=', metadata.get('url', False)))
+ concurrent_event_ids = m_event.search(domain)
+ return concurrent_event_ids
+
+ @api.multi
+ def event_create(self, event_type, metadata):
+ event_ids = self.env['mail.tracking.event']
+ for tracking_email in self:
+ other_ids = tracking_email._concurrent_events(event_type, metadata)
+ if not other_ids:
+ vals = tracking_email._event_prepare(event_type, metadata)
+ if vals:
+ event_ids += event_ids.sudo().create(vals)
+ partners = self.tracking_ids_recalculate(
+ 'res.partner', 'email', 'tracking_email_ids',
+ tracking_email.recipient_address)
+ if partners:
+ partners.email_score_calculate()
+ else:
+ _logger.debug("Concurrent event '%s' discarded", event_type)
+ return event_ids
+
+ @api.model
+ def event_process(self, request, post, metadata, event_type=None):
+ # Generic event process hook, inherit it and
+ # - return 'OK' if processed
+ # - return 'NONE' if this request is not for you
+ # - return 'ERROR' if any error
+ return 'NONE' # pragma: no cover
diff --git a/mail_tracking/models/mail_tracking_email.pyc b/mail_tracking/models/mail_tracking_email.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..250220fa462e1a919f75759f6800c01e949a22a2
GIT binary patch
literal 12602
zcmc&)%X1t_TF>fkwbZg@+46hF=
zlDfOvmDRQcHZKjt61xEr1HlH*AUN#qVI$x`aNxj+0~|Q)i3pBx;KT*~0QmjBtg0^g
z#q6O2%axt^WmZ1E_xEL$|9fWo?{@$5Zd;}Q%J^Nvqkn?J$A3$8m1^a6OSP;FUQ(@6
zRxhhoS?VR#t*Bl_wJOTu`(@RgP`#>ZRaI|NwI)?>O0}j`uclfxGXg72tId6CbH8fM
zs6eUB11gwRyIAU=@-fpP|s?U|$RqC_W5pJ?spTdU2|G~dT
z-9j~C+xLVQ>;2V~PhrxvR=R15ago
z0XMw>qCTzseHc?|P0N^lGQ<9C43M>7ZO$nF0FlM1fH+JwE5lIARJ*DKJQ5B(Vgtab
zSpt&-A`5YeIT>?U#sJr-0I}%|Wgyw0o--Vk-eZN{qlMn%(tD!NdrW%G0Z-=eQtNmD
z{!$7z`{BV~mV=)tj5$?!_oTq_R#W+_%D1O{B!~SRssH%0{ra)+%CZ1DZsxf@H4W*
zcLizhDgUzaujFGYt*@!zRke9m`S+B6RecUBgSF0Oz;7tZ03daNoLBx*2Dy-p`DOvDqU0V%L7ARUQVE|A*wi(^sW@yu(CvhR?uUBN^>*C8*9-I<07boE%UhyNbP_{R
zB$F7?9IkB!?L;(D9C&`z@9v123HyGqtvTzmnbqd3(xsCq4&?22)Ef+;zK&v;n>O4%
zyO=@Goz?3$H>wk_H;@hZ;d+>8eGHv@wz!&)qB3MFVP%;rk~59gAcXtB6=?0P2XcID
zfSS`BpF0<&-fY>-C2KN-iaTE()SEMF3A?N@c_(GQDtU*+0Y(#K^
zd6I-IfD?xg0uE+tId9RDM1!D@4pwiQDrb)al02Q=$r>{I!0VaWS>f)6eLY+g?A~Eb
zx8raPZxZ!u(Xii6>(@+OPN<_!axv{RM+U&oMsw0;l9A63I^M8rPP7qp2l`)OrtAy$
z>PBFn6MUSr!8XZI+hEABjrX*jY~Cy`B5ahSpN
zYj!6B+PA@i-QYF*TqCj{c-_#qb26Qq&K4$apSNzxPO`Edw%dX347=SOv)Y5uv!h|M
z9&rmIZ-B?3j$LowTK(kwe7;0Zr=NA5oZLKOzIU5qWUp+uH@yCOVApSbdOlrww4~vH
zFSDLu8yom)cfQ0&WaN3$TLUuGRj`OmzV
zrn4$yZBrgn7S(iS4Kq1cgDgY;ib9LJ)+y+2FyJQM7MqyEu$0J9CBY-~l9AKg)u$
zL)2Q>hj{8hj7GxkWmeV|u5v@aP4!9L%HQjF^iNSdLJWY?QYSYp^+^2bM-|m6t95aJ
z9#_@&kJY29TE6!e>hYv{g#TrA^6`{XB4#qus|WQ);sWS5lz~w?7@bS)rf8
zHoB$0RaWtNHsc?1(B^~+;SH4-HJCAGc`USuH?8~sR2Ws}DExn7$a!`Dyt<2hHYNUO
zXdd!P*bTRWkX4B>>QwgEb!jKAddV6E|f2@V4}3W
zK!c08*XU&u*r3j
zyYVbp5d>2-a%Gl#G|%J~QpK5PvB2W%EZ$&o2}PY}a^7U|4vQ;<;Taz(=w;?)gFI_D
ziCkgA0eZwkQ6R$6(te=-aH-A6oDYv7h<^o@9PvQ<=aMo=7|xb}T)SE4P|Xv=SEE0Z
z*?!7|ZA3xbkBs?DzhTU+U?*Ra%QiU|1J13f9!zh^jm-JFfwp
zlkoqRolF@%C-ic@!L>%bZ+JTA_=4sVt@!`L@M=AmAv-DJKH@+g)QL>)9;BQO06?GqunGDODcYRtzF42%w!R7k=
zg{Aom=dZ%qf|(*26Y3eDP3+q(0tj7?qv1ew!xIuO3bW@W?Tui(Ziho#_osNor55)B
zHtlFh6f*NSIrexw!QO3Dwm&r3TN1GcHgFcG03Z!@OT}-dUWI7_bru8+GQSC30Q?qE
zX>dpEG&Gm6FWQ1IheUD&Q{+x>fNX>@6Pt*Y9m1Z(88ON{%$PC8w9*gpvTR>6*t#&{HE@|>I${KP5pO-k%LG}>;D!9t5I@Tya-4%Gj8hu9X-A15dC
zKnx*kkVNCBiUSINi7ZpGEc_V9sqtjmO&r67@m;2k@>one?*eROkPM=SgCKT9B*{Z<
zq%f1fxr*u&aws@N!bdwdIRT!rIh+pt`@h9wSgLeFy!wNda1%Kx=cWJ+Vo8K4^-734
zpscJygF$oyalm6mEpjZb3MSOzG2jb22*<%CEm(ryeMu9M`n=18fO-+
zN+gL%BqWs}Lj(vJU~?W>yd8@(>aR)4ngSe}R4QJ?sS%KpfzhDyk+|2`!znoQS_evVrLtAFCareHS2=He
zjKPMtcEL543K0bgBN>eiv0S7dS78NRv(AM)lB-oYzrt*b)&PLhlJhUANu!w02z~ge&}T;kQG^f&gURUWxZdbTS&9=*XoSa^x_Y94}GC!e%)mh!7JO|AJLDJ5*^J4rUd9FT=Ra
zSZx|*+7dou-u@63L!LbBq0p4nwa2hypcWExU!)ae|F$NjDPk3OBo>+=IiaSRs1qZJ
zS8$KsDbd5C+)=>pV-A2{JT^`0fx3{0G(d$=qj>~HKT1O6#C&Q&US%=QA#rG-Z8B}M
z7%d``W{ok@c?_8ItDK8mJbFc%ya0k&bKDlkiNJcSi7*mbMi|M}>7?@FXaPyj6&Fpl
ztGRU>FAFfHbF;0aN7F7`@%Glgp(|CWH3;YlB;IC`e#290^H@9(F)Y0B2dIoh6&_D2
zsz{|7y$bTdcEcir;NT8;f^Y*%N~C%(X*0Sb!-`>$<&(7TP`AhpAA=EJgnimX(znJ0
zGA7N;IldH_!Z-kG(B9Aj(`vC~>YWO0myI
z#+eLvNn?i@F`3ZW=6rO59Xu+bybO~zUDNz3*ZFOBk9dOOBZQUvS}f+=;Q+FVG1ua`
zMuc%4=QmkEJj|98Ej#y<@v?)M*IWznj?f*%0r(>LFYH7!Z>!4G3sl=L!MN_j-(jR^
zVPttg@%dfl$;$_@LS{#HMFh)YtAmAjL7
z?Xz0GMKV;L#~b1iL2-Kt>@UyPfXWvj?yUq!VQ{zE}o(v}fgqyC+AGwwOC!oW}BpvRD98My@te@0u~mkSuE2V=A$
z>5%Oc$iK4SkU?$M4Nz)|xD{_^DiOY%;|5WaG%r{tg#cX7ntOv%z
zyJR2O3)&W_l1b4|6-ka&z*C|(o|W$xVv)pj`muGyRlEjvzKfbDS`5dE4k4d8G|tWsI3*1r9Fg`A-%LQBh1+NVo$s@k2f%GHn2}`mBS=txybQ?D
zm7dX_4e1#&;c0X!upqB|=ByKVs-=U_G_%$m?jO#gEm~#|Q!)zQ!<5^9!uImL-%nKv
zv<|qe1s$1|B-iBq0O#Ls>3EvodS^Q{26kSJg4wm6W{h=>4+u145fgAdL56r
z1yFEJNhp~Zp>eyhV)o9FBZn^iWI&+u-oz>
z)o7(WhtFlRFJcNSBCGGbiY@~pawU83{9F#BWleMblK(efHTdQQQv8KqR5j{M!a0y$
zuj(HS#0tRS~G)0@nj`^n6?YYlU>~I2bX%-$rC9?
zY9^6op3PZg@dXRXCN7~S$M4~KH#B$JH`x0jJ4iu4U`|_03f>|2I?SL-GSGz1F`Lk^
z%J|K{%bMse(PBSl^Cu|kcnZZBK2DH)DQ%|a9vJ`1U+FY-#vC4M4%()g#KlMPYaT+_
z&x9t^PJ90duN^rd@6DzqXPPZlOS4Dj_RUr2Cg+YI)~;2p(^L4Z&P~;3=cecO)eg=b
zs!i7p&&^e>`cZ62@JUw_pV2vM02p3su!hIyg2F~E?VmSaaLoH)
z(4N<&M`$=zc+7N)`|;EO=Wj5Jupc=5rZ~PLWnw*?KjUJ5&JmQdTm0};@H&3-2@hX3
ZLVlHtYtnK*P|d%Cr896PfOM-`{$F!ra;E?Q
literal 0
HcmV?d00001
diff --git a/mail_tracking/models/mail_tracking_event.py b/mail_tracking/models/mail_tracking_event.py
new file mode 100644
index 0000000..728f88c
--- /dev/null
+++ b/mail_tracking/models/mail_tracking_event.py
@@ -0,0 +1,136 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+import time
+from datetime import datetime
+
+from openerp import models, api, fields
+import openerp.addons.decimal_precision as dp
+
+
+class MailTrackingEvent(models.Model):
+ _name = "mail.tracking.event"
+ _order = 'timestamp desc'
+ _rec_name = 'event_type'
+ _description = 'MailTracking event'
+
+ recipient = fields.Char(string="Recipient", readonly=True)
+ timestamp = fields.Float(
+ string='UTC timestamp', readonly=True,
+ digits=dp.get_precision('MailTracking Timestamp'))
+ time = fields.Datetime(string="Time", readonly=True)
+ date = fields.Date(
+ string="Date", readonly=True, compute="_compute_date", store=True)
+ tracking_email_id = fields.Many2one(
+ string='Message', readonly=True,
+ comodel_name='mail.tracking.email')
+ event_type = fields.Selection(string='Event type', selection=[
+ ('sent', 'Sent'),
+ ('delivered', 'Delivered'),
+ ('deferral', 'Deferral'),
+ ('hard_bounce', 'Hard bounce'),
+ ('soft_bounce', 'Soft bounce'),
+ ('open', 'Open'),
+ ('click', 'Clicked'),
+ ('spam', 'Spam'),
+ ('unsub', 'Unsubscribed'),
+ ('reject', 'Rejected'),
+ ], readonly=True)
+ smtp_server = fields.Char(string='SMTP server', readonly=True)
+ url = fields.Char(string='Clicked URL', readonly=True)
+ ip = fields.Char(string='User IP', readonly=True)
+ user_agent = fields.Char(string='User agent', readonly=True)
+ mobile = fields.Boolean(string='Is mobile?', readonly=True)
+ os_family = fields.Char(string='Operating system family', readonly=True)
+ ua_family = fields.Char(string='User agent family', readonly=True)
+ ua_type = fields.Char(string='User agent type', readonly=True)
+ user_country_id = fields.Many2one(string='User country', readonly=True,
+ comodel_name='res.country')
+ error_type = fields.Char(string='Error type', readonly=True)
+ error_description = fields.Char(string='Error description', readonly=True)
+ error_details = fields.Text(string='Error details', readonly=True)
+
+ @api.multi
+ @api.depends('time')
+ def _compute_date(self):
+ for email in self:
+ email.date = fields.Date.to_string(
+ fields.Date.from_string(email.time))
+
+ def _process_data(self, tracking_email, metadata, event_type, state):
+ ts = time.time()
+ dt = datetime.utcfromtimestamp(ts)
+ return {
+ 'recipient': metadata.get('recipient', tracking_email.recipient),
+ 'timestamp': metadata.get('timestamp', ts),
+ 'time': metadata.get('time', fields.Datetime.to_string(dt)),
+ 'date': metadata.get('date', fields.Date.to_string(dt)),
+ 'tracking_email_id': tracking_email.id,
+ 'event_type': event_type,
+ 'ip': metadata.get('ip', False),
+ 'url': metadata.get('url', False),
+ 'user_agent': metadata.get('user_agent', False),
+ 'mobile': metadata.get('mobile', False),
+ 'os_family': metadata.get('os_family', False),
+ 'ua_family': metadata.get('ua_family', False),
+ 'ua_type': metadata.get('ua_type', False),
+ 'user_country_id': metadata.get('user_country_id', False),
+ 'error_type': metadata.get('error_type', False),
+ 'error_description': metadata.get('error_description', False),
+ 'error_details': metadata.get('error_details', False),
+ }
+
+ def _process_status(self, tracking_email, metadata, event_type, state):
+ tracking_email.sudo().write({'state': state})
+ return self._process_data(tracking_email, metadata, event_type, state)
+
+ def _process_bounce(self, tracking_email, metadata, event_type, state):
+ tracking_email.sudo().write({
+ 'state': state,
+ 'bounce_type': metadata.get('bounce_type', False),
+ 'bounce_description': metadata.get('bounce_description', False),
+ })
+ return self._process_data(tracking_email, metadata, event_type, state)
+
+ @api.model
+ def process_delivered(self, tracking_email, metadata):
+ return self._process_status(
+ tracking_email, metadata, 'delivered', 'delivered')
+
+ @api.model
+ def process_deferral(self, tracking_email, metadata):
+ return self._process_status(
+ tracking_email, metadata, 'deferral', 'deferred')
+
+ @api.model
+ def process_hard_bounce(self, tracking_email, metadata):
+ return self._process_bounce(
+ tracking_email, metadata, 'hard_bounce', 'bounced')
+
+ @api.model
+ def process_soft_bounce(self, tracking_email, metadata):
+ return self._process_bounce(
+ tracking_email, metadata, 'soft_bounce', 'soft-bounced')
+
+ @api.model
+ def process_open(self, tracking_email, metadata):
+ return self._process_status(tracking_email, metadata, 'open', 'opened')
+
+ @api.model
+ def process_click(self, tracking_email, metadata):
+ return self._process_status(
+ tracking_email, metadata, 'click', 'opened')
+
+ @api.model
+ def process_spam(self, tracking_email, metadata):
+ return self._process_status(tracking_email, metadata, 'spam', 'spam')
+
+ @api.model
+ def process_unsub(self, tracking_email, metadata):
+ return self._process_status(tracking_email, metadata, 'unsub', 'unsub')
+
+ @api.model
+ def process_reject(self, tracking_email, metadata):
+ return self._process_status(
+ tracking_email, metadata, 'reject', 'rejected')
diff --git a/mail_tracking/models/mail_tracking_event.pyc b/mail_tracking/models/mail_tracking_event.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c8d313f0196380145a127acb0bf06047df656ea3
GIT binary patch
literal 6765
zcmd5=TXP$?6~>a(g}PW5C$?id37a|%>sXR4J4%x}c52C~-9(DJlA4w?o$Z={l%+{7
zyI3aHjQr4X`=|P!`jn?WwcmF@tX6g(;_;}8Rtw^M02b#QoC|>J53^JMeEzR*+G_My
z#qZ~M?LG>P|3Gz>YPotvbpzE4R4Y&c+p4NtQN5~aRaLL1S~b-hQ>`)AhH>MnGod<@
zs#RCIrc70Jrqo`b^qBg)QqPt8Q)`;v-)@d$uH--X+iC`==98Q|&P|^5Op_et?9ofL
z>DruhJV*rEOH5bWd;!pAoOE}xxcwyQ@8AE<^z$}A`I|#|53l`qMJWSezyit&=LYAx
zLe3!zI5)yFm<5k|T$xF*SpoaRrznJ;7~y(SnQ7ITQM#_42k2I9%}Td3(hZ%9;d6q|
z3l4z=*BCgf^cgort+gP17NyUe?}H%=^5wJA`i8Wk&sn9{mEKVLzS3VP{ad9UDE(0B
z-zoj2(qF0lquHyiH)Sl?2J_7lSLaIjFH89O5`MLWUnt=pmhiU(zbN0oR>Cip`Y)C6
z%O!ldguh+FS4#Lhf;-JzAK@CBxgnZ)w=`!`OG6L
z9=YR@>mIr5ksBWQ+#{o%KdB
zg^bh5ev(^z?!_0jIt;8DcXIBPUs#iEF@?O8q>|p!h0j}SP25oU1g@!M$SKl8pfWY6@ZcuNgtIjjQkHX
zxx_)Ab6v;|!XU_!3rg(vsJLL0e&D1)MdkA-hIyNwQ3xrFBcO*@*_Tqd&^p>GhVK&=
z7ZX9X_{$e@*P14o4(Twtq`Fb|bLx?gAj!n=xY#L*+CnZwk`V{A@}u(;bvu{O;H*dr
zmia9Hj9kc^!Avk0RD*ND+2CC~Q^5pkFF)d?2*}-AmXKnTM4`oJHbG$!A%21
zH3TxW!ztlBXn9^k)S}E=;a!w&_swWzhdLE~exD_|3GcCyvxrhdavI)YA(#vWbz&hZ
zr{P6jS6r!~-2r6DstPW;cy&w@e?Y@AO^CeI1S66JBG^|cB1!NWL5MIf7&wV8~-Ag|)
zIZFqD^fl$Yi1Cu*d3ZQoOQp8`O3G1&qA}^H9~oJWIpJlD3%^Ejn$E{9vlmIuVow3Q
zVrV%QFW)(3fy!&dW8^c+^D1j}Oq#|iOH*DRIRgLfRmC}Ga_?cZ#C>;WK3#9(hSr;&
zo5t(CAYX6@(k}_Zn8@;_{B?%qfVs&
z<}MSCZZcdavdI`AjNyWy?_h2$#E-(ai%Hp)rs!lq<*2KysYLPewT5dyy4$dn#@}r;
zKLR0(7|E?r6v@dYif}d_b`41KAWafBqcqbdle18SLzruzmz2*n?odKT*P$LcxbI{`
zBL^0D8tJBS?oJZ}+3@2ygMBOxbrv@h;fEL*e#+ts3po?Xp^lty#{GlUv~R*|AcT=^
ze>>$)E$nW4`5Dw^}3w6syKC(pE}wuyzso~F?idh@%s6C
ztvTXFUy&qo!qdgR`t*AHBGHWGG^hu2IhW
lFLekb&O!^`lvSYEC$C*`r`yhf?r?JPxS3$SayeM6{uh&s)ph^?
literal 0
HcmV?d00001
diff --git a/mail_tracking/models/res_partner.py b/mail_tracking/models/res_partner.py
new file mode 100644
index 0000000..908f119
--- /dev/null
+++ b/mail_tracking/models/res_partner.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+# © 2016 Antonio Espinosa -
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openerp import models, api, fields
+
+
+class ResPartner(models.Model):
+ _inherit = 'res.partner'
+
+ tracking_email_ids = fields.Many2many(
+ string="Tracking emails", comodel_name="mail.tracking.email",
+ readonly=True)
+ tracking_emails_count = fields.Integer(
+ string="Tracking emails count", store=True, readonly=True,
+ compute="_compute_tracking_emails_count")
+ email_score = fields.Float(
+ string="Email score", readonly=True, default=50.0)
+
+ @api.multi
+ def email_score_calculate(self):
+ # This is not a compute method because is causing a inter-block
+ # in mail_tracking_email PostgreSQL table
+ # We suspect that tracking_email write to state field block that
+ # table and then inside write ORM try to read from DB
+ # tracking_email_ids because it's not in cache.
+ # PostgreSQL blocks read because we have not committed yet the write
+ for partner in self:
+ partner.email_score = partner.tracking_email_ids.email_score()
+
+ @api.one
+ @api.depends('tracking_email_ids')
+ def _compute_tracking_emails_count(self):
+ self.tracking_emails_count = self.env['mail.tracking.email'].\
+ search_count([
+ ('recipient_address', '=ilike', self.email)
+ ])
+
+ @api.multi
+ def write(self, vals):
+ email = vals.get('email')
+ if email is not None:
+ m_track = self.env['mail.tracking.email']
+ vals['tracking_email_ids'] = m_track._tracking_ids_to_write(email)
+ vals['email_score'] = m_track.email_score_from_email(email)
+ return super(ResPartner, self).write(vals)
diff --git a/mail_tracking/models/res_partner.pyc b/mail_tracking/models/res_partner.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..eca67ff81764f08c635356f97303280aef096de0
GIT binary patch
literal 2024
zcmcIlOK%)S5U!rthu8MTi9;d+2z<*Nz$@j3WKhH-QVy|T94TTY)EZ6qZpNNhx_c8W
z*(dXlxbdGj@dMzi>Rn@ma>KJbwcXWS)%AT<)tmk~-TwXRk5?tFpA^4O@%k?z48DqL
zqDIkNQIpU-p(dqyO3EZ;6`c-fp~$54E729vPxB#}0i9$+SXY1H$=G2SK{TDQwGTWm
z`bt!b%GSn*ZK!hVe<)mNtt&B;X9D>RUjG|}C5`|AAp)E7xrhug;Ak9ZhGd5bAf1n7
zbu6nRGGo@qRkKBAf<1%zmh73xp6$)*4w+r?uuXP{PIt*n1r(4^MRP~w9+^9Ig`@Y@
zs~FGkZcOfOOzu&BlHKFrcOabghkZmRxP5R{yYzcldg+St43h)f6cy;%g|6&`E8P~2
z_4lFRrNgk^c_=%>miR49*VgC$!GAp+l-;TgffM0F=WG~b1ke2{*zhUFdOgt_$2x`p
zJq#u8@A=>ZUvA8eT@XR*c?!_XB9gSnHSw8Rki4xse5UI?Hys~L18!au`k)>u;&
zGr!QC>AEl8b?(emZdMqus{Im9Jwqr3?g$fciJpKJJlxPvwwJwH`H;?-Ss}sC9yd-WX8=VG(@r2jKuYLH4MjnT5F}EhH|bTnbO8a8-fMsuexMXVx^(GM1Ork6K|oa0
z1d(0^A@tCTv@h?U@XgKL&D_l1-R|x4?A|7s7-=)mank_+00vzhO*8V0{I7$l$zz|g
z^ALHWcG1_?1YG^sO0ZR#FKnaMAa%rSV0^?*8dJxmNqcWrrOw>1|oub{LrPH;Q$Z;RfWJf{@p$%Q_|_&iQns<^WMSfLhoEt}*Wq)e%^JlrvZV9F%K^?r|g2Dy{ut(ohc2HQ2uR
zYPFmxP1(95@^En=O?jp>l=Mza55}%`bs)(~L7@(ctJ*t#gRr`7cpdE%a$n|A{TStV
za3-5n?rXMJMerS6`k1o4zyTNkKO@GHv0+!2vvs1zg<(C`Fju+M^0D}yWDp91b{3O<
z>=#&Jc2lLWc+bwb+WebZRSOIKZ@SOQA_Ugfy>_{|4FDaftK|xZt(fNYnd{p9T6#Pe
zJ&j^UGpjAstgUq^K7twPW>m{^8`e7bo~S`i
zG@4QGe^DKvkn_g7LH6^}yNm5i{Lvv->+LO1jDF&OEQiNcIkKNui2%TYC^wsoAMU7M
zcDEkqM^ruz&Go|Y9z+!NJm8|Pp_y=apVNPKJ~Q*Zpm?q$W@Qfh$ja!AT!>gPevN*J
zz@r|6m4zYjT-wlkV5as5#F@$EA3Vk1@!|87yPzk-z_>DxR
zCRQltzq!+g-?r~Q_&N}Hc68^vZpMLkUJtDZ6oev%-!8`MSD5+hWoTg?eA8{~m8-AC
z`+s5ioCN6GJDcT{c%yVV`9$9eUwE;T&~9JBi}zKW>*1yaJKLaL@7{F0opl#o`UF<@
z114z|h2PkS$IL-*;BNLu-uOnUn(y*o`j&W{vu!6Iv$z^La{A^c{QH>D6}^4Q2DgHO
zLLD*S;bg<~Qg*TVc~%y?uOZe+BuO=m_C#07k;-JE&6o5jlr-1vw|{h~pEw_Re8+zL
z#`=x@v-&;iX4vq+;!9gGwq`a#vvxbiNA*Wv#;>hP0aTbHsr%q9+NoWkJ7nbMG&pn~
z3{U%R73YZL&3olsHH$2iN5q-GDa>1xcc>p-uO3}@fH7*DaT0{-m6aeQ>EyESg-Vg@
z6A9YKjdmaXwhxMCJL$Tha0Q0T2z$urHFy1iceOR>(bk%P_QkXAE0{5)5)>BGRs3x^
zz}K$*Xm^c9|G43e;%V=2US9my=1mVMSz#wGYODOhdv|T5m*f~byX=l4v2$>iw;(P+
z>@#Um6%~~p($7L3B59^QeEG{+B9m*&ivIY1=r0}6cPQF$_gekw_p<8*pr3c*)-pok5T^qyEq363()Po)AHhuenB-hty;KrJ=+sH
zn|znQ%X&AwW%7kJC?Yg*j9qhnAa(XO~mTpIYfOB0xAI&A=SyX-;=^?ArF|NR=_~
zPvZXP5YEt6YhLvcbDxk_57(AFgSKfmft;L+IX%4ghbyOP@k9kRWNBg7sqD(}e0%iL
zOkrfPgL2df0XTxl`r)(kl7eB+y8Isr-kFj3}6R;tVU{$gPBQurM_8=XyZ>0hr3ZiJA(+&hdSGl&b+(<8rh^0k~4
zO&q=$%8{^F>}+ak6VY9qNW!LMAeZFs-pk6;t8hVcg6b{n%53W+ow*{WEhJ0Yn9nU-
zj7?Ew%IJyS9PX>ABmOLwzn-L&TIBIJ5d~_MWPEX5%kkCl(cc3t5v9Ao0>$umdO0HM(7>5$ZtqOX!ZP@XdI!+5HWq87oRa?{6qt_m^nDq
z?PeokX~ig;0(zu|#CR4lI;|}94p1`j!=eMW{w-hg?ZL*j!M^fpRkNMn69JU@w|ok6
z$iKzbOyBoqIY9p1IL|gxbVpX7mGB4@Q+5!Hc1{*G;#E3WRnWJRaQwHrStL7`%dTCW
zqEK6ebh9CwmifhiI+`;KV_9ErTYos_3Z9=J3xm4_!Rl+@^D?ysqK_8VPsyyDwXzbx
zJ6NfFbz?xV4=$1^)xKyjY|f@zcaQt6Swn{!0T1c&)rN5nEZ8H{HPb&g&04XDhoe|LKnJcS)2vvW@2_Bd=dqDz|6Y|RGUZp+ywqok{T&Bc!vtKaSy3rw1rcplw
z^#8a8Dgo-ihE{xMJ7WG#VTRh6VBNtc7VPpqtM4p2YOwJ)i0sb=!Gr#hD5tGf{EBp8>qJPzrB9M^U*DD?lbeGmZLYvT@xzg=+Mth2Bhyp{!
z%c*$WJ^{hdER;YDhtn5kEU+UTZPq@uJ`3u!H$laV=xai#WHO}!>HAie)Ok3UcJySk
zCf^?O=0rtjyWe_{p$U!$*pCx@Y&>KNtR-@K?{S;lW3R1Mg@6bM%G>-0x?dqc0kmK|
z6iE#CgAJ~7+Z~&NmOku0l`k*&6&%D?a-Fxk7raGl5}V%XGGIF8%K8aXLRxML+h-b8~jl!&eqmwOhPt`9=5kw`!EoRUAx
z?~p_f1RzZ|<~8DM{tyfx~M-gtefB
zGv%o4Q7O4BP;&v)=d<$jJ8bL09_Q(T@TVxcF>G}(v=k>gJa=BGits1Ps{@`
z?9(>vgDDlGL)a&XB(Z9t4spj$(|keq8RKz@Q1BPm?=d=2!%rABAgKBCCSUhDWq7!n
zvvAVm{7SV9At3~-kTnOJ7P`SRU4#}U+pTGREvju=qv~<_h(Cl{5M+uh6C>XiaSXOrpd@<-si)-rkmp`V1`(R5F9hT-giBdc3CjgafP}oi8w^iJN
zyWns6geFsyBAO_$YPP1B-tQUiLE8aq7AHPtG45vAAfFCj$^*(DD_%lfUVP5>_cnFIdf^jVG5^-o
zf<0agSt=TedR9i;lnpjLHhnIVL}rWSfa^m;%NG2q<(4r}Ttu)j
z4vt{6At!ERZ*m489^Ce#J3!U7zaTe}oy#n9YtSl{Y
z`@C#gz(IdW^P}BVJ25@PQggG~I=$M=l1-$mj`;r!m6lvN|Z9|V(8G56RJ7e+x4
z8ExbDnqUcD7<2>{hz~5?c+jH)PpuJ>-o|N5sGv5EoNR^}r$h#pF
zv_0;n^hr0V&)?F?h64$2*w=qlRL80gDcpV9FIbwYS3x&^xCob0KBREx?R6}e7kxJW
zmSAbT2opzv`~o+-_IF!u7Mes+ox=bvyNSJ7bVGcdiz
zF*X*yA;OQy)Nb6;`1TN-9A!`K+pL`F_hj?VDqr+DeD?=Og7LvtbvC!wCLw*
zO2Un3P%06AFN=z7ywMG@9Pux%W$tEMjy?T3v1bnfs)zGE6wbFcFSmRTd#?`Xqm&P(
zG+7pG2KX#21i${8V03|~FP>6Jk5Sz-zkTob)uC+l)kve|h0liQa_~YUR_2wU6MSwu
zgk~#*2bJ!jpCgpUcM>zGwWK{1-Nu*Hr_*KRc|GW=y^Ap_x#~SJl!=k5c+qq76swVW
zoq{^?-m^~1L4RBT3}Hb==;OBaSxZipv;C|1{SBG#OH^IEXNjtdmLJBq|GZE+^Zl5z
z?Iqd!Fl>p5vF}o=MSz96H+DZQO+8v%+J+wrRHpB<-n8+f?w^y3X98Ru=cu5_+W<-~
zi_>;r^!$@jSGkWn+gCYF3tmVNHtFfSmQrll%6HDU4@hv41kML4eQBoGdZk_YvE_Pp
zx~c=5Ag-{{u;0lR6zf@fc=4?@p+}hCsea9Q+j8?wWBxdVQEv69{6=p~9f?y7Dc_rW0HsLH30Zylkp*X>RmR}GH6atbEI
z{#3y+yT(2NZt~NrK@Lch6Rb{{i54<8JkY6aUN2ZNG^B8mk}&RT^O3Qu_dY#@$2?_v
z^D@o0K9&4UKI!hM5GiTpi5hBlp62s|(O?}X3%VF``*hO#gO@JWO2>~bhD~1^ZK7*$
zd$dhgn|t~3RvE|FLn$zPIHqK!L4T;8P>{xpCkHi2vtg5>y*>;dzQ1D$)@Z~QQsK1~
zG7UyhOLAn;H9d>8I1PK(jD&&-8%Kmzp^C;YcmL8p{3j{Ys}So?SIYD5={kL9_J=I#
zJbI7(2lbX4cn-zcX?QaT`e$MN_yREN^SkdjS|GVrm4B&u8%?4UgyL6M89F(#(mZo3
zf%%oDHRh)EmgVwbixkZ_MCA7Ab>8v
z(3UR>{QYJ_Od90ZAr=>GFZowa!oX-;YrVp38aN23U#NKS|U3pC@>$7(d|EC!{~
z%Y2WA>H;-D-2$z)KenwLqc1*=_-DWWS5rDc%LD;fpDw}fp>|O2_kNI@d`(Xgz<~Q8mfQ&zd=3R4oDhS!(B^czvSXA~l|n1_W8J-v6@Lu%?rY=LFk0}Agqd?}k~f^e;oNQ{UR
zMCnUz%GDdiF~s3f0jpqqSXQJIb4E_jD_fj9Wd
+ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). */
+
+.mail_tracking span {
+ color: #909090;
+}
+.mail_tracking_pointer {
+ cursor: pointer;
+}
+
+.mail_tracking span.mail_tracking_opened {
+ color: #a34a8b;
+}
diff --git a/mail_tracking/static/src/img/delivered.png b/mail_tracking/static/src/img/delivered.png
new file mode 100644
index 0000000000000000000000000000000000000000..25f980343ea39b87dac3f8b5efde781636abd9be
GIT binary patch
literal 285
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6G!3HG%>OYYHQfx`y?k)`fL2$v|<&%LToCO|{
z#X!0Ngc;9=%`yiv*h@TpUD+S7u?xzxW?c5q1q!Y5ba4!^IDPh#E!QCfnYNGfUo7z6
zes7t&!23nb(+i8g3+SEWlXI9O6KmCVWoc{B?}=^#@h2v=|NpF}_$N_pVva$!&Bo&;
zEYfG#Tyx(t-OMO#jAodeaIt={dFZ$dN={x6;_*eJJI9-h585>S
a)ysGG@7nXy{c0G{)eN4lelF{r5}E+4UT`S@
literal 0
HcmV?d00001
diff --git a/mail_tracking/static/src/img/error.png b/mail_tracking/static/src/img/error.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8e114ae54673d6cb75e4d1363652f8839bc584f
GIT binary patch
literal 257
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?-
zQl#xr}0AEPxQRV<$_l6`p
zt_uvNCH_ZF{GD{Yr#oiOx(;VM#R$*y2LxtLxVqzVi`UBck$>gTe~DWM4f70p@M
literal 0
HcmV?d00001
diff --git a/mail_tracking/static/src/img/opened.png b/mail_tracking/static/src/img/opened.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5ce70f1954c2d979bfb347b95ba54db886053d0
GIT binary patch
literal 368
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6G!3HG%>OYYHQfx`y?k)`fL2$v|<&%LToCO|{
z#X!0Ngc;9=%`yiv*h@TpUD+S7u?s3nUzW@S$^Z3qaSX9IefIJ~ucHYf2R`0!bL`GN
zxQsu+Sb~SS`Hq3^_8Br9QeSOFYFb4%aq3H5l9T|;v$?LmWMPrWg
zseR5pw~>2}j>>e2#MO>5Ng^ViVhL$`XLZLg!y|Cp%;n&xaW>P2?-
z1`uXEA2!Pz$dD{?jVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsA#dLi(`mI
z@6yQ|c@G(gxZD?1adAFw=5xR(U;~e=ZFWGg0i$q$gLAowg;AkQ`;AMccKg+9BjdNN
zwA`#YVad~!#wD^Jrj$&&l2BdJVEaJhxYUgUwo|kdxJ~L0=qE65V9UFI+SovzyIp=y
z$*HiQrs5_A%P9{OI@~3^m~N{@cuk7iAu6I0`NMs}M4m&P3X@_Q-8r}Q{@NBesiF04
gc~IH?YwJFzopr04zdgF#rGn
literal 0
HcmV?d00001
diff --git a/mail_tracking/static/src/img/unknown.png b/mail_tracking/static/src/img/unknown.png
new file mode 100644
index 0000000000000000000000000000000000000000..c17c681e737282f7f588b50ac3a000441d96ade9
GIT binary patch
literal 425
zcmV;a0apHrP)