You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

783 lines
30 KiB

privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
privacy_consent: Separate automated emails send process Before https://github.com/OCA/data-protection/pull/29 there was a race condition where an email could be sent while the same transaction that created the `privacy.consent` record still wasn't committed, producing a 404 error if the user clicked on "Accept" or "Reject" before all mails were sent. To avoid that, a raw `cr.commit()` was issued, but this produced another situation where the user had to wait until the full email queue is cleared to get his page loaded. It wasn't an error, but a long queue meant several minutes waiting, and it's ulikely that an average human is so patient. So, here's the final fix (I hope!). The main problem was that I was looking in the wrong place to send the email. It turns out that the `self.post_message_with_template()` method is absolutely helpless in the case at hand, where these criteria must be met: * E-mail must be enqueued, no matter if there are less or more than 50 consents to send. * The template must be processed per record. * In an ideal world, a `cr.commit()` must be issued after each sent mail. The metod that was being used: * Didn't allow to use `auto_commit` mode. * Only allowed to render the template per record if called with `composition_mode="mass_mail"`. * Only allowed to enqueue emails if called with `composition_mode="mass_post"`. Obviously, I cannot set 2 different values for `composition_mode`, so a different strategy had to be used. I discovered that the `mail.template` model has a helpful method called `send_mail()` that, by default: * Renders the template per record * Enqueues the email * The email queue is cleared in `auto_commit=True` mode. So, from now on, problems are gone: * The user click, or the cron run, will just generate the missing `privacy.consent` records and enqueue mails for them. * The mail queue manager will send them later, in `auto_commit` mode. * After sending the e-mail, this module will set the `privacy.consent` record as `sent`. * Thanks to *not* sending the email, the process the user faces when he hits the "generate" button is faster. * Instructions in the README and text in the "generate" button are updated to reflect this new behavior. * Thanks to the `auto_commit` feature, if Odoo is rebooted in the middle of a mail queue clearance, the records that were sent remain properly marked as sent, and the missing mails will be sent after the next boot. * No hardcoded commits. * No locked transactions. * BTW I discovered that 2 different emails were created when creating a new consent. I started using `mail_create_nolog=True` to avoid that problem and only log a single creation message. Note to self: never use again `post_message_with_template()`.
6 years ago
  1. # Translation of Odoo Server.
  2. # This file contains the translation of the following modules:
  3. # * privacy_consent
  4. #
  5. msgid ""
  6. msgstr ""
  7. "Project-Id-Version: Odoo Server 10.0\n"
  8. "Report-Msgid-Bugs-To: \n"
  9. "POT-Creation-Date: 2019-05-13 17:04+0000\n"
  10. "PO-Revision-Date: 2019-05-13 18:08+0100\n"
  11. "Last-Translator: Jairo Llopis <yajo.sk8@gmail.com>\n"
  12. "Language-Team: \n"
  13. "Language: es_ES\n"
  14. "MIME-Version: 1.0\n"
  15. "Content-Type: text/plain; charset=UTF-8\n"
  16. "Content-Transfer-Encoding: 8bit\n"
  17. "Plural-Forms: nplurals=2; plural=(n != 1);\n"
  18. "X-Generator: Poedit 2.2.1\n"
  19. #. module: privacy_consent
  20. #: model:mail.template,body_html:privacy_consent.template_consent
  21. msgid ""
  22. "<?xml version=\"1.0\"?>\n"
  23. "<div style=\"background:#F3F5F6;color:#515166;padding:25px 0px;font-family:"
  24. "Arial,Helvetica,sans-serif;font-size:14px;\">\n"
  25. " <table style=\"width:600px;margin:5px auto;\">\n"
  26. " <tbody>\n"
  27. " <tr>\n"
  28. " <td>\n"
  29. " <a href=\"/\">\n"
  30. " <img src=\"/logo\" alt=\"${object."
  31. "activity_id.controller_id.display_name|safe}\" style=\"vertical-align:"
  32. "baseline;max-width:100px;\"/>\n"
  33. " </a>\n"
  34. " </td>\n"
  35. " </tr>\n"
  36. " </tbody>\n"
  37. " </table>\n"
  38. " <table style=\"width:600px;margin:0px auto;background:white;"
  39. "border:1px solid #e1e1e1;\">\n"
  40. " <tbody>\n"
  41. " <tr>\n"
  42. " <td colspan=\"2\" style=\"padding:15px 20px 0px "
  43. "20px; font-size:16px;\">\n"
  44. " <p>\n"
  45. " Hello, ${object.partner_id.name|safe}\n"
  46. " </p>\n"
  47. " <p>\n"
  48. " We contacted you to ask you to give us "
  49. "your explicit consent to include your data in a data processing activity "
  50. "called\n"
  51. " <b>${object.activity_id.display_name|"
  52. "safe}</b>, property of\n"
  53. " <i>${object.activity_id.controller_id."
  54. "display_name|safe}</i>\n"
  55. " </p>\n"
  56. " ${object.description or \"\"}\n"
  57. " <p>\n"
  58. " % if object.state == \"answered\":\n"
  59. " The last time you answered, you\n"
  60. " % elif object.state == \"sent\":\n"
  61. " If you do nothing, we will assume "
  62. "you have\n"
  63. " % endif\n"
  64. "\n"
  65. " % if object.accepted:\n"
  66. " <b>accepted</b>\n"
  67. " % else:\n"
  68. " <b>rejected</b>\n"
  69. " % endif\n"
  70. " such data processing.\n"
  71. " </p>\n"
  72. " <p>\n"
  73. " You can update your preferences below:\n"
  74. " </p>\n"
  75. " </td>\n"
  76. " </tr>\n"
  77. " <tr>\n"
  78. " <td style=\"padding:15px 20px 0px 20px; font-"
  79. "size:16px; text-align:right;\">\n"
  80. " <a href=\"/privacy/consent/accept/\" style="
  81. "\"background-color: #449d44; padding: 12px; font-weight: 12px; text-"
  82. "decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">\n"
  83. " Accept\n"
  84. " </a>\n"
  85. " </td>\n"
  86. " <td style=\"padding:15px 20px 0px 20px; font-"
  87. "size:16px; text-align:left;\">\n"
  88. " <a href=\"/privacy/consent/reject/\" style="
  89. "\"background-color: #d9534f; padding: 12px; font-weight: 12px; text-"
  90. "decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">\n"
  91. " Reject\n"
  92. " </a>\n"
  93. " </td>\n"
  94. " </tr>\n"
  95. " <tr>\n"
  96. " <td colspan=\"2\" style=\"padding:15px 20px 15px "
  97. "20px; font-size:16px;\">\n"
  98. " <p>\n"
  99. " If you need further information, please "
  100. "respond to this email and we will attend your request as soon as possible.\n"
  101. " </p>\n"
  102. " <p>\n"
  103. " Thank you!\n"
  104. " </p>\n"
  105. " </td>\n"
  106. " </tr>\n"
  107. " </tbody>\n"
  108. " </table>\n"
  109. " <table style=\"width:600px;margin:0px auto;text-align:center;"
  110. "\">\n"
  111. " <tbody>\n"
  112. " <tr>\n"
  113. " <td style=\"padding-top:10px;font-size: 12px;"
  114. "\">\n"
  115. " <p>\n"
  116. " Sent by\n"
  117. " <a href=\"/\" style=\"color:#717188;\">"
  118. "${object.activity_id.controller_id.display_name|safe}</a>.\n"
  119. " </p>\n"
  120. " </td>\n"
  121. " </tr>\n"
  122. " </tbody>\n"
  123. " </table>\n"
  124. " </div>\n"
  125. " "
  126. msgstr ""
  127. "<?xml version=\"1.0\"?>\n"
  128. "<div style=\"background:#F3F5F6;color:#515166;padding:25px 0px;font-family:"
  129. "Arial,Helvetica,sans-serif;font-size:14px;\">\n"
  130. " <table style=\"width:600px;margin:5px auto;\">\n"
  131. " <tbody>\n"
  132. " <tr>\n"
  133. " <td>\n"
  134. " <a href=\"/\">\n"
  135. " <img src=\"/logo\" alt=\"${object."
  136. "activity_id.controller_id.display_name|safe}\" style=\"vertical-align:"
  137. "baseline;max-width:100px;\"/>\n"
  138. " </a>\n"
  139. " </td>\n"
  140. " </tr>\n"
  141. " </tbody>\n"
  142. " </table>\n"
  143. " <table style=\"width:600px;margin:0px auto;background:white;"
  144. "border:1px solid #e1e1e1;\">\n"
  145. " <tbody>\n"
  146. " <tr>\n"
  147. " <td colspan=\"2\" style=\"padding:15px 20px 0px "
  148. "20px; font-size:16px;\">\n"
  149. " <p>\n"
  150. " Hola, ${object.partner_id.name|safe}\n"
  151. " </p>\n"
  152. " <p>\n"
  153. " Le hemos contactado para pedirle su "
  154. "consentimiento explícito para incluir sus datos en una actividad de "
  155. "tratamiento llamada\n"
  156. " <b>${object.activity_id.display_name|"
  157. "safe}</b>, propiedad de\n"
  158. " <i>${object.activity_id.controller_id."
  159. "display_name|safe}</i>\n"
  160. " </p>\n"
  161. " ${object.description or \"\"}\n"
  162. " <p>\n"
  163. " % if object.state == \"answered\":\n"
  164. " Según su última respuesta,\n"
  165. " % elif object.state == \"sent\":\n"
  166. " Si no recibimos respuesta, "
  167. "asumiremos que\n"
  168. " % endif\n"
  169. "\n"
  170. " % if object.accepted:\n"
  171. " <b>ha aceptado</b>\n"
  172. " % else:\n"
  173. " <b>ha rechazado</b>\n"
  174. " % endif\n"
  175. " dicho procesamiento de datos.\n"
  176. " </p>\n"
  177. " <p>\n"
  178. " Puede cambiar sus preferencias aquí "
  179. "abajo:\n"
  180. " </p>\n"
  181. " </td>\n"
  182. " </tr>\n"
  183. " <tr>\n"
  184. " <td style=\"padding:15px 20px 0px 20px; font-"
  185. "size:16px; text-align:right;\">\n"
  186. " <a href=\"/privacy/consent/accept/\" style="
  187. "\"background-color: #449d44; padding: 12px; font-weight: 12px; text-"
  188. "decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">\n"
  189. " Aceptar\n"
  190. " </a>\n"
  191. " </td>\n"
  192. " <td style=\"padding:15px 20px 0px 20px; font-"
  193. "size:16px; text-align:left;\">\n"
  194. " <a href=\"/privacy/consent/reject/\" style="
  195. "\"background-color: #d9534f; padding: 12px; font-weight: 12px; text-"
  196. "decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">\n"
  197. " Rechazar\n"
  198. " </a>\n"
  199. " </td>\n"
  200. " </tr>\n"
  201. " <tr>\n"
  202. " <td colspan=\"2\" style=\"padding:15px 20px 15px "
  203. "20px; font-size:16px;\">\n"
  204. " <p>\n"
  205. " Si necesita más información, por favor "
  206. "responda a este correo electrónico y atenderemos su solicitud a la mayor "
  207. "brevedad posible.\n"
  208. " </p>\n"
  209. " <p>\n"
  210. " ¡Gracias!\n"
  211. " </p>\n"
  212. " </td>\n"
  213. " </tr>\n"
  214. " </tbody>\n"
  215. " </table>\n"
  216. " <table style=\"width:600px;margin:0px auto;text-align:center;"
  217. "\">\n"
  218. " <tbody>\n"
  219. " <tr>\n"
  220. " <td style=\"padding-top:10px;font-size: 12px;"
  221. "\">\n"
  222. " <p>\n"
  223. " Enviado por\n"
  224. " <a href=\"/\" style=\"color:#717188;\">"
  225. "${object.activity_id.controller_id.display_name|safe}</a>.\n"
  226. " </p>\n"
  227. " </td>\n"
  228. " </tr>\n"
  229. " </tbody>\n"
  230. " </table>\n"
  231. " </div>\n"
  232. " "
  233. #. module: privacy_consent
  234. #: model:mail.message.subtype,name:privacy_consent.mt_activity_acceptance_changed
  235. msgid "Acceptance Changed"
  236. msgstr "Aceptación cambiada"
  237. #. module: privacy_consent
  238. #: model:mail.message.subtype,name:privacy_consent.mt_consent_acceptance_changed
  239. msgid "Acceptance Changed by Subject"
  240. msgstr "Aceptación cambiada por el interesado"
  241. #. module: privacy_consent
  242. #: model:mail.message.subtype,description:privacy_consent.mt_consent_acceptance_changed
  243. msgid "Acceptance status updated by subject"
  244. msgstr "Estado de aceptación modificado por el interesado"
  245. #. module: privacy_consent
  246. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__accepted
  247. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_search
  248. msgid "Accepted"
  249. msgstr "Aceptado"
  250. #. module: privacy_consent
  251. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__default_consent
  252. msgid "Accepted by default"
  253. msgstr "Aceptado por defecto"
  254. #. module: privacy_consent
  255. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_needaction
  256. msgid "Action Needed"
  257. msgstr ""
  258. #. module: privacy_consent
  259. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__active
  260. msgid "Active"
  261. msgstr "Activo"
  262. #. module: privacy_consent
  263. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__activity_id
  264. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_search
  265. msgid "Activity"
  266. msgstr "Actividad"
  267. #. module: privacy_consent
  268. #: selection:privacy.consent,state:0
  269. msgid "Answered"
  270. msgstr "Respondido"
  271. #. module: privacy_consent
  272. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_search
  273. msgid "Archived"
  274. msgstr "Archivado"
  275. #. module: privacy_consent
  276. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_form
  277. msgid "Ask for consent"
  278. msgstr "Solicitar consentimiento"
  279. #. module: privacy_consent
  280. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_required
  281. msgid "Ask subjects for consent"
  282. msgstr "Solicitar consentimiento a los interesados"
  283. #. module: privacy_consent
  284. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_attachment_count
  285. msgid "Attachment Count"
  286. msgstr ""
  287. #. module: privacy_consent
  288. #: selection:privacy.activity,consent_required:0
  289. msgid "Automatically"
  290. msgstr "Automáticamente"
  291. #. module: privacy_consent
  292. #: selection:privacy.consent,state:0
  293. msgid "Awaiting response"
  294. msgstr "Esperando respuesta"
  295. #. module: privacy_consent
  296. #: model_terms:ir.ui.view,arch_db:privacy_consent.activity_form
  297. msgid "Consent"
  298. msgstr "Consentimiento"
  299. #. module: privacy_consent
  300. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_template_default_body_html
  301. #, fuzzy
  302. #| msgid "Consent template default body html"
  303. msgid "Consent Template Default Body Html"
  304. msgstr "HTML por defecto para el cuerpo de la plantilla de consentimiento"
  305. #. module: privacy_consent
  306. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_template_default_subject
  307. #, fuzzy
  308. #| msgid "Consent template default subject"
  309. msgid "Consent Template Default Subject"
  310. msgstr "HTML por defecto para el asunto de la plantilla de consentimiento"
  311. #. module: privacy_consent
  312. #: model:ir.model,name:privacy_consent.model_privacy_consent
  313. msgid "Consent of data processing"
  314. msgstr "Consentimiento para tratamiento de datos"
  315. #. module: privacy_consent
  316. #: model:ir.actions.act_window,name:privacy_consent.consent_action
  317. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_ids
  318. #: model:ir.model.fields,field_description:privacy_consent.field_res_partner__privacy_consent_count
  319. #: model:ir.model.fields,field_description:privacy_consent.field_res_users__privacy_consent_count
  320. #: model:ir.ui.menu,name:privacy_consent.menu_privacy_consent
  321. msgid "Consents"
  322. msgstr "Consents"
  323. #. module: privacy_consent
  324. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_count
  325. #, fuzzy
  326. #| msgid "Consents"
  327. msgid "Consents count"
  328. msgstr "Consents"
  329. #. module: privacy_consent
  330. #: model:ir.model,name:privacy_consent.model_res_partner
  331. msgid "Contact"
  332. msgstr ""
  333. #. module: privacy_consent
  334. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__create_uid
  335. msgid "Created by"
  336. msgstr "Creado por"
  337. #. module: privacy_consent
  338. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__create_date
  339. msgid "Created on"
  340. msgstr "Creado el"
  341. #. module: privacy_consent
  342. #: model:ir.model,name:privacy_consent.model_privacy_activity
  343. msgid "Data processing activities"
  344. msgstr "Actividades de tratamiento de datos"
  345. #. module: privacy_consent
  346. #: model:mail.template,subject:privacy_consent.template_consent
  347. msgid ""
  348. "Data processing consent request for ${object.activity_id.display_name|safe}"
  349. msgstr ""
  350. "Solicitud de consentimiento para el tratamiento de datos personales para "
  351. "${object.activity_id.display_name|safe}"
  352. #. module: privacy_consent
  353. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__display_name
  354. msgid "Display Name"
  355. msgstr "Nombre a mostrar"
  356. #. module: privacy_consent
  357. #: selection:privacy.consent,state:0
  358. msgid "Draft"
  359. msgstr "Borrador"
  360. #. module: privacy_consent
  361. #: sql_constraint:privacy.consent:0
  362. msgid "Duplicated partner in this data processing activity"
  363. msgstr "Contacto duplicado en esta actividad de tratamiento"
  364. #. module: privacy_consent
  365. #: model:ir.model,name:privacy_consent.model_mail_template
  366. msgid "Email Templates"
  367. msgstr "Plantillas de correo electrónico"
  368. #. module: privacy_consent
  369. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__consent_template_id
  370. msgid "Email template"
  371. msgstr "Plantilla de correo electrónico"
  372. #. module: privacy_consent
  373. #: model:ir.model.fields,help:privacy_consent.field_privacy_activity__consent_template_id
  374. msgid ""
  375. "Email to be sent to subjects to ask for consent. A good template should "
  376. "include details about the current consent request status, how to change it, "
  377. "and where to get more information."
  378. msgstr ""
  379. "Correo electrónico a enviar a los interesados para solicitarles el "
  380. "consentimiento. Una buena plantilla debería incluir detalles sobre el estado "
  381. "actual del consentimiento, cómo cambiarlo, y dónde obtener más información."
  382. #. module: privacy_consent
  383. #: model:ir.model.fields,help:privacy_consent.field_privacy_activity__consent_required
  384. msgid ""
  385. "Enable if you need to track any kind of consent from the affected subjects"
  386. msgstr ""
  387. "Actívelo si necesita registrar cualquier tipo de consentimiento de los "
  388. "interesados"
  389. #. module: privacy_consent
  390. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_follower_ids
  391. msgid "Followers"
  392. msgstr ""
  393. #. module: privacy_consent
  394. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_channel_ids
  395. msgid "Followers (Channels)"
  396. msgstr ""
  397. #. module: privacy_consent
  398. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_partner_ids
  399. msgid "Followers (Partners)"
  400. msgstr ""
  401. #. module: privacy_consent
  402. #: model_terms:ir.ui.view,arch_db:privacy_consent.activity_form
  403. msgid "Generate and enqueue missing consent requests"
  404. msgstr ""
  405. "Generar y colocar en la bandeja de salida las solicitudes de consentimiento "
  406. "que falten"
  407. #. module: privacy_consent
  408. #: model_terms:ir.ui.view,arch_db:privacy_consent.activity_form
  409. msgid "Generate missing draft consent requests"
  410. msgstr "Generar borradores de las solicitudes de consentimiento faltantes"
  411. #. module: privacy_consent
  412. #: code:addons/privacy_consent/models/privacy_activity.py:139
  413. #, python-format
  414. msgid "Generated consents"
  415. msgstr "Consentimientos generados"
  416. #. module: privacy_consent
  417. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_search
  418. msgid "Group By"
  419. msgstr "Agrupar por"
  420. #. module: privacy_consent
  421. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  422. msgid "Hello,"
  423. msgstr "Hola,"
  424. #. module: privacy_consent
  425. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  426. msgid "I <b>accept</b> this processing of my data"
  427. msgstr "<b>Acepto</b> este tratamiento de mis datos"
  428. #. module: privacy_consent
  429. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  430. msgid "I <b>reject</b> this processing of my data"
  431. msgstr "<b>Rechazo</b> este tratamiento de mis datos"
  432. #. module: privacy_consent
  433. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__id
  434. msgid "ID"
  435. msgstr "ID"
  436. #. module: privacy_consent
  437. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_unread
  438. msgid "If checked new messages require your attention."
  439. msgstr ""
  440. #. module: privacy_consent
  441. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_needaction
  442. msgid "If checked, new messages require your attention."
  443. msgstr ""
  444. #. module: privacy_consent
  445. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_has_error
  446. msgid "If checked, some messages have a delivery error."
  447. msgstr ""
  448. #. module: privacy_consent
  449. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  450. msgid "If it was a mistake, you can undo it here:"
  451. msgstr "Si ha sido un error, puede deshacerlo aquí:"
  452. #. module: privacy_consent
  453. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__accepted
  454. msgid ""
  455. "Indicates current acceptance status, which can come from subject's last "
  456. "answer, or from the default specified in the related data processing "
  457. "activity."
  458. msgstr ""
  459. "Indica el estado actual de la aceptación, el cual puede venir de la última "
  460. "respuesta del interesado, o del estado por defecto especificado en la "
  461. "actividad de tratamiento relacionada."
  462. #. module: privacy_consent
  463. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_is_follower
  464. msgid "Is Follower"
  465. msgstr ""
  466. #. module: privacy_consent
  467. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__last_metadata
  468. #, fuzzy
  469. #| msgid "Last metadata"
  470. msgid "Last Metadata"
  471. msgstr "Últimos metadatos"
  472. #. module: privacy_consent
  473. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent____last_update
  474. msgid "Last Modified on"
  475. msgstr "Última modificación en"
  476. #. module: privacy_consent
  477. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__write_uid
  478. msgid "Last Updated by"
  479. msgstr "Última actualización por"
  480. #. module: privacy_consent
  481. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__write_date
  482. msgid "Last Updated on"
  483. msgstr "Última actualización el"
  484. #. module: privacy_consent
  485. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_main_attachment_id
  486. msgid "Main Attachment"
  487. msgstr ""
  488. #. module: privacy_consent
  489. #: selection:privacy.activity,consent_required:0
  490. msgid "Manually"
  491. msgstr "Manualmente"
  492. #. module: privacy_consent
  493. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_has_error
  494. msgid "Message Delivery error"
  495. msgstr ""
  496. #. module: privacy_consent
  497. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_ids
  498. msgid "Messages"
  499. msgstr ""
  500. #. module: privacy_consent
  501. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__last_metadata
  502. msgid "Metadata from the last acceptance or rejection by the subject"
  503. msgstr ""
  504. "Metadatos de la última aceptación o denegación por parte del interesado"
  505. #. module: privacy_consent
  506. #: code:addons/privacy_consent/models/mail_template.py:24
  507. #, python-format
  508. msgid ""
  509. "Missing privacy consent link placeholders. You need at least these two "
  510. "links:\n"
  511. "<a href=\"%s\">Accept</a>\n"
  512. "<a href=\"%s\">Reject</a>"
  513. msgstr ""
  514. "Faltan los marcadores de posición de los enlaces para el consentimiento. "
  515. "Necesita al menos estos dos enlaces:\n"
  516. "<a href=\"%s\">Aceptar</a>\n"
  517. "<a href=\"%s\">Rechazar</a>"
  518. #. module: privacy_consent
  519. #: model:mail.message.subtype,name:privacy_consent.mt_activity_consent_new
  520. #: model:mail.message.subtype,name:privacy_consent.mt_consent_consent_new
  521. msgid "New Consent"
  522. msgstr "Nuevo consentimiento"
  523. #. module: privacy_consent
  524. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_needaction_counter
  525. msgid "Number of Actions"
  526. msgstr ""
  527. #. module: privacy_consent
  528. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_has_error_counter
  529. msgid "Number of error"
  530. msgstr ""
  531. #. module: privacy_consent
  532. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_needaction_counter
  533. msgid "Number of messages which requires an action"
  534. msgstr ""
  535. #. module: privacy_consent
  536. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_has_error_counter
  537. msgid "Number of messages with delivery error"
  538. msgstr ""
  539. #. module: privacy_consent
  540. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__message_unread_counter
  541. msgid "Number of unread messages"
  542. msgstr ""
  543. #. module: privacy_consent
  544. #: model:ir.model,name:privacy_consent.model_mail_mail
  545. msgid "Outgoing Mails"
  546. msgstr "Correos electrónicos salientes"
  547. #. module: privacy_consent
  548. #: model:mail.message.subtype,description:privacy_consent.mt_activity_acceptance_changed
  549. msgid "Privacy consent request acceptance status changed"
  550. msgstr ""
  551. "El estado de aceptación de la solicitud de consentimiento para el "
  552. "tratamiento de datos ha cambiado"
  553. #. module: privacy_consent
  554. #: model:mail.message.subtype,description:privacy_consent.mt_activity_consent_new
  555. #: model:mail.message.subtype,description:privacy_consent.mt_consent_consent_new
  556. msgid "Privacy consent request created"
  557. msgstr ""
  558. "La solicitud de consentimiento para el tratamiento de datos ha sido creada"
  559. #. module: privacy_consent
  560. #: model:mail.message.subtype,description:privacy_consent.mt_activity_state_changed
  561. #: model:mail.message.subtype,description:privacy_consent.mt_consent_state_changed
  562. msgid "Privacy consent request state changed"
  563. msgstr ""
  564. "El estado de la solicitud de consentimiento para el tratamiento de datos ha "
  565. "cambiado"
  566. #. module: privacy_consent
  567. #: model:ir.model.fields,help:privacy_consent.field_res_partner__privacy_consent_count
  568. #: model:ir.model.fields,help:privacy_consent.field_res_users__privacy_consent_count
  569. msgid "Privacy consent requests amount"
  570. msgstr "Cantidad de solicitudes de consentimiento para el tratamiento de datos"
  571. #. module: privacy_consent
  572. #: model:ir.model.fields,field_description:privacy_consent.field_res_partner__privacy_consent_ids
  573. #: model:ir.model.fields,field_description:privacy_consent.field_res_users__privacy_consent_ids
  574. msgid "Privacy consents"
  575. msgstr "Consentimientos para el tratamiento de datos"
  576. #. module: privacy_consent
  577. #: model:ir.actions.server,name:privacy_consent.cron_auto_consent_ir_actions_server
  578. #: model:ir.cron,cron_name:privacy_consent.cron_auto_consent
  579. #: model:ir.cron,name:privacy_consent.cron_auto_consent
  580. msgid "Request automatic data processing consents"
  581. msgstr ""
  582. #. module: privacy_consent
  583. #: code:addons/privacy_consent/models/privacy_activity.py:99
  584. #, python-format
  585. msgid "Require consent is available only for subjects in current database."
  586. msgstr ""
  587. "La opción de exigir consentimiento solo está disponible para interesados que "
  588. "se encuentren en esta misma base de datos."
  589. #. module: privacy_consent
  590. #: model:ir.model.fields,help:privacy_consent.field_privacy_activity__server_action_id
  591. msgid ""
  592. "Run this action when a new consent request is created or its acceptance "
  593. "status is updated."
  594. msgstr ""
  595. "Ejecutar esta acción cuando se cree una nueva solicitud de consentimiento, o "
  596. "cuando su estado de aceptación cambie."
  597. #. module: privacy_consent
  598. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_activity__server_action_id
  599. msgid "Server action"
  600. msgstr "Acción de servidor"
  601. #. module: privacy_consent
  602. #: model:ir.model.fields,help:privacy_consent.field_privacy_activity__default_consent
  603. msgid "Should we assume the subject has accepted if we receive no response?"
  604. msgstr ""
  605. "¿Hay que asumir que el interesado ha aceptado si no recibimos respuesta?"
  606. #. module: privacy_consent
  607. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  608. msgid "Sincerely,<br/>"
  609. msgstr "Atentamente,<br/>"
  610. #. module: privacy_consent
  611. #: code:addons/privacy_consent/models/privacy_activity.py:91
  612. #, python-format
  613. msgid "Specify a mail template to ask automated consent."
  614. msgstr ""
  615. "Especifique una plantilla de correo electrónico para solicitar "
  616. "automáticamente el consentimiento."
  617. #. module: privacy_consent
  618. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__state
  619. #: model_terms:ir.ui.view,arch_db:privacy_consent.consent_search
  620. msgid "State"
  621. msgstr "Estado"
  622. #. module: privacy_consent
  623. #: model:mail.message.subtype,name:privacy_consent.mt_activity_state_changed
  624. #: model:mail.message.subtype,name:privacy_consent.mt_consent_state_changed
  625. msgid "State Changed"
  626. msgstr "El estado ha cambiado"
  627. #. module: privacy_consent
  628. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__partner_id
  629. msgid "Subject"
  630. msgstr "Interesado"
  631. #. module: privacy_consent
  632. #: model:ir.model.fields,help:privacy_consent.field_privacy_consent__partner_id
  633. msgid "Subject asked for consent."
  634. msgstr "Interesado a quien se le pide el consentimiento."
  635. #. module: privacy_consent
  636. #: model:ir.actions.server,name:privacy_consent.sync_blacklist
  637. msgid "Sync partner's email blacklist status"
  638. msgstr ""
  639. #. module: privacy_consent
  640. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  641. msgid "Thank you!"
  642. msgstr "¡Gracias!"
  643. #. module: privacy_consent
  644. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  645. msgid "Thanks for your response."
  646. msgstr "Gracias por su respuesta."
  647. #. module: privacy_consent
  648. #: model_terms:ir.ui.view,arch_db:privacy_consent.activity_form
  649. msgid "This could enqueue many consent emails, are you sure to proceed?"
  650. msgstr ""
  651. "Esto podría poner en la cola muchos correos electrónicos solicitando "
  652. "consentimiento para el tratamiento de datos, ¿seguro que quiere continuar?"
  653. #. module: privacy_consent
  654. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_unread
  655. msgid "Unread Messages"
  656. msgstr ""
  657. #. module: privacy_consent
  658. #: model:ir.model.fields,field_description:privacy_consent.field_privacy_consent__message_unread_counter
  659. msgid "Unread Messages Counter"
  660. msgstr ""
  661. #. module: privacy_consent
  662. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  663. msgid ""
  664. "We asked you to authorize us to process your data in this data processing "
  665. "activity:"
  666. msgstr ""
  667. "Le hemos solicitado que nos autorice para procesar sus datos personales en "
  668. "esta actividad de tratamiento:"
  669. #. module: privacy_consent
  670. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  671. msgid "We have recorded this action on your side."
  672. msgstr "Hemos registrado esta acción por su parte."
  673. #. module: privacy_consent
  674. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  675. msgid "You have <b class=\"text-danger\">rejected</b> such processing."
  676. msgstr "Ha <b class=\"text-danger\">rechazado</b> dicho tratamiento."
  677. #. module: privacy_consent
  678. #: model_terms:ir.ui.view,arch_db:privacy_consent.form
  679. msgid "You have <b class=\"text-success\">accepted</b> such processing."
  680. msgstr "Ha <b class=\"text-success\">aceptado</b> dicho tratamiento."
  681. #~ msgid "Email composition wizard"
  682. #~ msgstr "Asistente de redacción de correo electrónico"
  683. #~ msgid "Partner"
  684. #~ msgstr "Contacto"
  685. #~ msgid "Update partner's opt out"
  686. #~ msgstr "Sincronizar la opción del contacto para recibir o no envíos masivos"