[MERGE] Use Email everywhere
bzr revid: al@openerp.com-20120627131528-u97jw0m7cq2825ll
This commit is contained in:
commit
f17b0eea00
|
@ -96,7 +96,7 @@ class account_config_settings(osv.osv_memory):
|
|||
'module_account_voucher': fields.boolean('Manage Customer Payments',
|
||||
help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc.
|
||||
This installs the module account_voucher."""),
|
||||
'module_account_followup': fields.boolean('Manage Customer Payment Follow-Ups',
|
||||
'module_account_followup': fields.boolean('Manage Customer Payment Follow-ups',
|
||||
help="""This allows to automate letters for unpaid invoices, with multi-level recalls.
|
||||
This installs the module account_followup."""),
|
||||
'module_account_invoice_layout': fields.boolean('Allow Notes and Subtotals',
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'Followup Management',
|
||||
'name': 'Follow-up Management',
|
||||
'version': '1.0',
|
||||
'category': 'Accounting & Finance',
|
||||
'description': """
|
||||
|
@ -28,16 +28,16 @@ Module to automate letters for unpaid invoices, with multi-level recalls.
|
|||
==========================================================================
|
||||
|
||||
You can define your multiple levels of recall through the menu:
|
||||
Accounting/Configuration/Miscellaneous/Follow-Ups
|
||||
Accounting/Configuration/Miscellaneous/Follow-ups
|
||||
|
||||
Once it is defined, you can automatically print recalls every day through simply clicking on the menu:
|
||||
Accounting/Periodical Processing/Billing/Send followups
|
||||
Accounting/Periodical Processing/Billing/Send follow-ups
|
||||
|
||||
It will generate a PDF with all the letters according to the the
|
||||
different levels of recall defined. You can define different policies
|
||||
for different companies. You can also send mail to the customer.
|
||||
|
||||
Note that if you want to check the followup level for a given partner/account entry, you can do from in the menu:
|
||||
Note that if you want to check the follow-up level for a given partner/account entry, you can do from in the menu:
|
||||
Accounting/Reporting/Generic Reporting/Partners/Follow-ups Sent
|
||||
|
||||
""",
|
||||
|
|
|
@ -23,11 +23,11 @@ from osv import fields, osv
|
|||
|
||||
class followup(osv.osv):
|
||||
_name = 'account_followup.followup'
|
||||
_description = 'Account Follow Up'
|
||||
_description = 'Account Follow-up'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'description': fields.text('Description'),
|
||||
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-Up'),
|
||||
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-up'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
|
@ -38,7 +38,7 @@ followup()
|
|||
|
||||
class followup_line(osv.osv):
|
||||
_name = 'account_followup.followup.line'
|
||||
_description = 'Follow-Up Criteria'
|
||||
_description = 'Follow-up Criteria'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of follow-up lines."),
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<data noupdate="1">
|
||||
|
||||
<record id="demo_followup1" model="account_followup.followup">
|
||||
<field name="name">Default Follow-Up</field>
|
||||
<field name="name">Default Follow-up</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="description">First letter after 15 net days, 30 net days and 45 days end of month levels.</field>
|
||||
</record>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<field name="model">account_followup.followup.line</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Follow-Up Steps">
|
||||
<tree string="Follow-up Steps">
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="start"/>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<field name="model">account_followup.followup.line</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Follow-Up Steps" version="7.0">
|
||||
<form string="Follow-up Steps" version="7.0">
|
||||
<group col="4">
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
|
@ -43,7 +43,7 @@
|
|||
<field name="model">account_followup.followup</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Follow-Up" version="7.0">
|
||||
<form string="Follow-up" version="7.0">
|
||||
<group col="4">
|
||||
<field name="name"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
|
@ -58,7 +58,7 @@
|
|||
<field name="model">account_followup.followup</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Follow-Up">
|
||||
<tree string="Follow-up">
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
|
@ -70,9 +70,9 @@
|
|||
<field name="model">account_followup.followup</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Followup">
|
||||
<search string="Search Follow-up">
|
||||
<group>
|
||||
<field name="name" string="Followup"/>
|
||||
<field name="name" string="Follow-up"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
|
@ -81,16 +81,16 @@
|
|||
</record>
|
||||
|
||||
<record id="action_account_followup_definition_form" model="ir.actions.act_window">
|
||||
<field name="name">Follow-Ups</field>
|
||||
<field name="name">Follow-ups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account_followup.followup</field>
|
||||
<field name="search_view_id" ref="view_account_followup_filter"/>
|
||||
<field name="view_type">form</field>
|
||||
<field name="help">Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
|
||||
<field name="help">Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
|
||||
</record>
|
||||
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_configuration_misc"/>
|
||||
|
||||
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Followup Report"/>
|
||||
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Follow-up Report"/>
|
||||
|
||||
<record id="account_move_line_partner_tree" model="ir.ui.view">
|
||||
<field name="name">account.move.line.partner.tree</field>
|
||||
|
|
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.followup:0
|
||||
msgid "Search Followup"
|
||||
msgid "Search Follow-up"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -34,12 +34,12 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: view:account_followup.followup:0
|
||||
#: field:account_followup.followup,followup_line:0
|
||||
msgid "Follow-Up"
|
||||
msgid "Follow-up"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
#: help:account.followup.print.all,test_print:0
|
||||
msgid "Check if you want to print followups without changing followups level."
|
||||
msgid "Check if you want to print follow-ups without changing follow-ups level."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -80,7 +80,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,help:account_followup.action_followup_stat
|
||||
msgid "Follow up on the reminders sent over to your partners for unpaid invoices."
|
||||
msgid "Follow-up on the reminders sent over to your partners for unpaid invoices."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -91,7 +91,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
msgid "Follow up Entries with period in current year"
|
||||
msgid "Follow-up Entries with period in current year"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -117,7 +117,7 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
|
||||
#: model:ir.ui.menu,name:account_followup.account_followup_menu
|
||||
msgid "Follow-Ups"
|
||||
msgid "Follow-ups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -175,7 +175,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.model,name:account_followup.model_account_followup_followup
|
||||
msgid "Account Follow Up"
|
||||
msgid "Account Follow-up"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -227,7 +227,7 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: field:account_followup.stat,date_followup:0
|
||||
#: field:account_followup.stat.by.partner,date_followup:0
|
||||
msgid "Latest followup"
|
||||
msgid "Latest follow-up"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -269,7 +269,7 @@ msgstr ""
|
|||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
|
||||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print_all
|
||||
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
|
||||
msgid "Send followups"
|
||||
msgid "Send follow-ups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -280,13 +280,13 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: field:account_followup.followup.line,followup_id:0
|
||||
#: field:account_followup.stat,followup_id:0
|
||||
msgid "Follow Ups"
|
||||
msgid "Follow-ups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
#: code:addons/account_followup/wizard/account_followup_print.py:296
|
||||
#, python-format
|
||||
msgid "All E-mails have been successfully sent to Partners:.\n"
|
||||
msgid "All Emails have been successfully sent to Partners:.\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
@ -308,7 +308,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
|
||||
msgid "Followup Statistics by Partner"
|
||||
msgid "Follow-up Statistics by Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -326,7 +326,7 @@ msgstr ""
|
|||
#, python-format
|
||||
msgid "\n"
|
||||
"\n"
|
||||
"E-Mail sent to following Partners successfully. !\n"
|
||||
"Email sent to following Partners successfully. !\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
@ -354,7 +354,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account.followup.print.all:0
|
||||
msgid "Print Follow Ups"
|
||||
msgid "Print Follow-ups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -364,7 +364,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.model,name:account_followup.model_account_followup_stat
|
||||
msgid "Followup Statistics"
|
||||
msgid "Follow-up Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -430,7 +430,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
msgid "Follow-Up lines"
|
||||
msgid "Follow-up lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -453,7 +453,7 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: model:ir.model,name:account_followup.model_account_followup_print
|
||||
#: model:ir.model,name:account_followup.model_account_followup_print_all
|
||||
msgid "Print Followup & Send Mail to Customers"
|
||||
msgid "Print Follow-up & Send Mail to Customers"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -464,12 +464,12 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
|
||||
msgid "Followup Report"
|
||||
msgid "Follow-up Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.followup.line:0
|
||||
msgid "Follow-Up Steps"
|
||||
msgid "Follow-up Steps"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -480,7 +480,7 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: code:addons/account_followup/wizard/account_followup_print.py:307
|
||||
#, python-format
|
||||
msgid "Followup Summary"
|
||||
msgid "Follow-up Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -496,12 +496,12 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: field:account_followup.stat.by.partner,max_followup_id:0
|
||||
msgid "Max Follow Up Level"
|
||||
msgid "Max Follow-up Level"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,name:account_followup.action_view_account_followup_followup_form
|
||||
msgid "Review Invoicing Follow-Ups"
|
||||
msgid "Review Invoicing Follow-ups"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -511,7 +511,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,help:account_followup.action_account_followup_definition_form
|
||||
msgid "Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
|
||||
msgid "Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -522,7 +522,7 @@ msgstr ""
|
|||
#. module: account_followup
|
||||
#: code:addons/account_followup/wizard/account_followup_print.py:298
|
||||
#, python-format
|
||||
msgid "E-Mail not sent to following Partners, E-mail not available !\n"
|
||||
msgid "Email not sent to following Partners, Email not available !\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
@ -545,7 +545,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
msgid "Followup Level"
|
||||
msgid "Follow-up Level"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -556,7 +556,7 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: constraint:account_followup.followup:0
|
||||
msgid "Only One Followup by Company."
|
||||
msgid "Only One Follow-up by Company."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -682,11 +682,11 @@ msgstr ""
|
|||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
msgid "Latest Followup Date"
|
||||
msgid "Latest Follow-up Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_followup
|
||||
#: model:ir.model,name:account_followup.model_account_followup_followup_line
|
||||
msgid "Follow-Up Criteria"
|
||||
msgid "Follow-up Criteria"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="Account Followup.pdf">
|
||||
<template title="Account Followup" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
|
||||
<document filename="Account Follow-up.pdf">
|
||||
<template title="Account Follow-up" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="31.0" y1="28.0" width="532" height="786"/>
|
||||
</pageTemplate>
|
||||
|
|
|
@ -24,7 +24,7 @@ import tools
|
|||
|
||||
class account_followup_stat(osv.osv):
|
||||
_name = "account_followup.stat"
|
||||
_description = "Followup Statistics"
|
||||
_description = "Follow-up Statistics"
|
||||
_rec_name = 'partner_id'
|
||||
_auto = False
|
||||
_columns = {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<field name="model">account_followup.stat</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Follow-Up lines">
|
||||
<tree string="Follow-up lines">
|
||||
<field name="partner_id"/>
|
||||
<field name="date_move"/>
|
||||
<field name="date_move_last"/>
|
||||
|
@ -28,7 +28,7 @@
|
|||
<field name="model">account_followup.stat</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Follow-Up lines" type="bar">
|
||||
<graph string="Follow-up lines" type="bar">
|
||||
<field name="partner_id"/>
|
||||
<field name="balance" operator="+"/>
|
||||
</graph>
|
||||
|
@ -47,7 +47,7 @@
|
|||
<filter icon="terp-go-year" string="This Fiscal year"
|
||||
name="fiscalyear"
|
||||
domain="[('period_id','in','current_year')]"
|
||||
help="Follow up Entries with period in current year"/>
|
||||
help="Follow-up Entries with period in current year"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-camera_test" string="Not Litigation"
|
||||
domain="[('blocked','=', False)]"
|
||||
|
@ -62,8 +62,8 @@
|
|||
<separator orientation="vertical"/>
|
||||
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Followup Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
|
||||
<filter string="Latest Followup Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
|
||||
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
|
||||
<filter string="Latest Follow-up Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<filter string="Company" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}" />
|
||||
</group>
|
||||
|
@ -77,7 +77,7 @@
|
|||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{'search_default_followup_level':1}</field>
|
||||
<field name="search_view_id" ref="view_account_followup_stat_search"/>
|
||||
<field name="help">Follow up on the reminders sent over to your partners for unpaid invoices.</field>
|
||||
<field name="help">Follow-up on the reminders sent over to your partners for unpaid invoices.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_followup_stat" id="menu_action_followup_stat_follow" parent="account.next_id_22" groups="account.group_account_user"/>
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
<data>
|
||||
|
||||
<record id="account_followup_comp_rule" model="ir.rule">
|
||||
<field name="name">Account Followup multi company rule</field>
|
||||
<field name="name">Account Follow-up multi company rule</field>
|
||||
<field model="ir.model" name="model_id" ref="model_account_followup_followup"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record id="account_followup_stat_by_partner_comp_rule" model="ir.rule">
|
||||
<field name="name">Account Followup Statistics by Partner Rule</field>
|
||||
<field name="name">Account Follow-up Statistics by Partner Rule</field>
|
||||
<field ref="model_account_followup_stat_by_partner" name="model_id"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
-
|
||||
In order to test account followup module in OpenERP, I change the state of invoice to "open".
|
||||
In order to test account follow-up module in OpenERP, I change the state of invoice to "open".
|
||||
-
|
||||
!record {model: account.invoice, id: account.demo_invoice_0}:
|
||||
check_total: 14.0
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account.demo_invoice_0}
|
||||
-
|
||||
I create a followup.
|
||||
I create a follow-up.
|
||||
-
|
||||
!record {model: account.followup.print, id: account_followup_print_0}:
|
||||
{}
|
||||
-
|
||||
I select the followup to send it to the partner.
|
||||
I select the follow-up to send it to the partner.
|
||||
-
|
||||
!python {model: account.followup.print}: |
|
||||
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),
|
||||
})
|
||||
-
|
||||
I select partners whom I want to send followups.
|
||||
I select partners whom I want to send follow-ups.
|
||||
-
|
||||
!record {model: account.followup.print.all, id: account_followup_print_all_0}:
|
||||
email_body: 'Date : %(date)s\n\nDear %(partner_name)s,\n\nPlease find in attachment
|
||||
|
@ -28,7 +28,7 @@
|
|||
- base.res_partner_desertic_hispafuentes
|
||||
partner_lang: 1
|
||||
-
|
||||
I send a followup mail to partner.
|
||||
I send a follow-up mail to partner.
|
||||
-
|
||||
!python {model: account.followup.print.all}: |
|
||||
import time
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
-
|
||||
In order to test the report I print followup report.
|
||||
In order to test the report I print follow-up report.
|
||||
-
|
||||
!python {model: account.followup.print.all}: |
|
||||
import time
|
||||
ctx = {'form_view_ref':'account_followup.view_account_followup_print_all', 'followup_id': ref('account_followup.demo_followup1'),'date': time.strftime('%Y-%m-%d'),'model': 'account_followup.followup','active_ids':[ref('account_followup_print_all_0')], 'company_id':ref('base.main_company')}
|
||||
data_dict = {'email_conf': 1}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow Ups"], our_module='account_followup')
|
||||
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow-ups"], our_module='account_followup')
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ from tools.translate import _
|
|||
|
||||
class account_followup_print(osv.osv_memory):
|
||||
_name = 'account.followup.print'
|
||||
_description = 'Print Followup & Send Mail to Customers'
|
||||
_description = 'Print Follow-up & Send Mail to Customers'
|
||||
_columns = {
|
||||
'date': fields.date('Follow-up Sending Date', required=True, help="This field allow you to select a forecast date to plan your follow-ups"),
|
||||
'followup_id': fields.many2one('account_followup.followup', 'Follow-up', required=True),
|
||||
|
@ -71,14 +71,14 @@ account_followup_print()
|
|||
|
||||
class account_followup_stat_by_partner(osv.osv):
|
||||
_name = "account_followup.stat.by.partner"
|
||||
_description = "Followup Statistics by Partner"
|
||||
_description = "Follow-up Statistics by Partner"
|
||||
_rec_name = 'partner_id'
|
||||
_auto = False
|
||||
_columns = {
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
|
||||
'date_move':fields.date('First move', readonly=True),
|
||||
'date_move_last':fields.date('Last move', readonly=True),
|
||||
'date_followup':fields.date('Latest followup', readonly=True),
|
||||
'date_followup':fields.date('Latest follow-up', readonly=True),
|
||||
'max_followup_id': fields.many2one('account_followup.followup.line',
|
||||
'Max Follow Up Level', readonly=True, ondelete="cascade"),
|
||||
'balance':fields.float('Balance', readonly=True),
|
||||
|
@ -90,7 +90,7 @@ class account_followup_stat_by_partner(osv.osv):
|
|||
# Here we don't have other choice but to create a virtual ID based on the concatenation
|
||||
# of the partner_id and the company_id, because if a partner is shared between 2 companies,
|
||||
# we want to see 2 lines for him in this table. It means that both company should be able
|
||||
# to send him followups separately . An assumption that the number of companies will not
|
||||
# to send him follow-ups separately . An assumption that the number of companies will not
|
||||
# reach 10 000 records is made, what should be enough for a time.
|
||||
cr.execute("""
|
||||
create or replace view account_followup_stat_by_partner as (
|
||||
|
@ -118,7 +118,7 @@ account_followup_stat_by_partner()
|
|||
|
||||
class account_followup_print_all(osv.osv_memory):
|
||||
_name = 'account.followup.print.all'
|
||||
_description = 'Print Followup & Send Mail to Customers'
|
||||
_description = 'Print Follow-up & Send Mail to Customers'
|
||||
_columns = {
|
||||
'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel', 'osv_memory_id', 'partner_id', 'Partners', required=True),
|
||||
'email_conf': fields.boolean('Send email confirmation'),
|
||||
|
@ -126,7 +126,7 @@ class account_followup_print_all(osv.osv_memory):
|
|||
'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'),
|
||||
'email_body': fields.text('Email body'),
|
||||
'summary': fields.text('Summary', required=True, readonly=True),
|
||||
'test_print': fields.boolean('Test Print', help='Check if you want to print followups without changing followups level.')
|
||||
'test_print': fields.boolean('Test Print', help='Check if you want to print follow-ups without changing follow-ups level.')
|
||||
}
|
||||
def _get_summary(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
|
@ -289,15 +289,15 @@ class account_followup_print_all(osv.osv_memory):
|
|||
msg += partner.name + '\n'
|
||||
msg_unsent += msg
|
||||
if not msg_unsent:
|
||||
summary = _("All E-mails have been successfully sent to Partners:.\n\n%s") % msg_sent
|
||||
summary = _("All Emails have been successfully sent to Partners:.\n\n%s") % msg_sent
|
||||
else:
|
||||
msg_unsent = _("E-Mail not sent to following Partners, E-mail not available !\n\n%s") % msg_unsent
|
||||
msg_sent = msg_sent and _("\n\nE-Mail sent to following Partners successfully. !\n\n%s") % msg_sent
|
||||
msg_unsent = _("Email not sent to following Partners, Email not available !\n\n%s") % msg_unsent
|
||||
msg_sent = msg_sent and _("\n\nEmail sent to following Partners successfully. !\n\n%s") % msg_sent
|
||||
line = '=========================================================================='
|
||||
summary = msg_unsent + line + msg_sent
|
||||
context.update({'summary': summary})
|
||||
else:
|
||||
context.update({'summary': '\n\n\nE-Mail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
|
||||
context.update({'summary': '\n\n\nEmail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
|
||||
|
||||
return {
|
||||
'name': _('Followup Summary'),
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
<field name="model">account.followup.print</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send followups" version="7.0">
|
||||
<form string="Send follow-ups" version="7.0">
|
||||
<header>
|
||||
<button name="do_continue" string="Continue" colspan="1" type="object" icon="gtk-ok"/>
|
||||
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
|
||||
</header>
|
||||
<separator string="Send Follow-Ups"/>
|
||||
<separator string="Send Follow-ups"/>
|
||||
<label string ="This feature allows you to send reminders to partners with pending invoices. You can send them the default message for unpaid invoices or manually enter a message should you need to remind them of a specific information."/>
|
||||
<group col="4">
|
||||
<field name="followup_id"/>
|
||||
|
@ -23,7 +23,7 @@
|
|||
</record>
|
||||
|
||||
<record id="action_account_followup_print" model="ir.actions.act_window">
|
||||
<field name="name">Send followups</field>
|
||||
<field name="name">Send follow-ups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.followup.print</field>
|
||||
<field name="view_type">form</field>
|
||||
|
@ -75,7 +75,7 @@
|
|||
<field name="model">account.followup.print.all</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send followups" version="7.0">
|
||||
<form string="Send follow-ups" version="7.0">
|
||||
<header>
|
||||
<button name="do_mail" string="Send Mails" colspan="1" type="object" icon="gtk-execute"/>
|
||||
<button name="do_print" string="Print Follow Ups" colspan="1" type="object" icon="gtk-print"/>
|
||||
|
@ -126,7 +126,7 @@
|
|||
</record>
|
||||
|
||||
<record id="action_account_followup_print_all" model="ir.actions.act_window">
|
||||
<field name="name">Send followups</field>
|
||||
<field name="name">Send follow-ups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.followup.print.all</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
|
@ -327,7 +327,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
|||
reply_to = emailfrom
|
||||
if not emailfrom:
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_("No E-Mail ID Found for your Company address!"))
|
||||
_("No Email ID Found for your Company address!"))
|
||||
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=obj.id)
|
||||
|
||||
|
||||
|
|
|
@ -286,7 +286,7 @@ msgstr ""
|
|||
#. module: base_action_rule
|
||||
#: code:addons/base_action_rule/base_action_rule.py:329
|
||||
#, python-format
|
||||
msgid "No E-Mail ID Found for your Company address!"
|
||||
msgid "No Email ID Found for your Company address!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
|
|
|
@ -59,7 +59,7 @@ class base_action_rule(osv.osv):
|
|||
else:
|
||||
reply_to = emailfrom
|
||||
if not emailfrom:
|
||||
raise osv.except_osv(_('Error!'), _("No E-Mail Found for your Company address!"))
|
||||
raise osv.except_osv(_('Error!'), _("No Email Found for your Company address!"))
|
||||
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model=obj._name, reply_to=reply_to, res_id=obj.id)
|
||||
|
||||
def do_check(self, cr, uid, action, obj, context=None):
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<field name="name">direct</field>
|
||||
</record>
|
||||
<record model="crm.case.channel">
|
||||
<field name="name">e-mail</field>
|
||||
<field name="name">email</field>
|
||||
</record>
|
||||
<record model="crm.case.section" id="section_sales_department">
|
||||
<field name="name">Sales Department</field>
|
||||
|
|
|
@ -193,7 +193,7 @@ class crm_lead(base_stage, osv.osv):
|
|||
'active': fields.boolean('Active', required=False),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
'date_action_next': fields.datetime('Next Action', readonly=1),
|
||||
'email_from': fields.char('Email', size=128, help="E-mail address of the contact", select=1),
|
||||
'email_from': fields.char('Email', size=128, help="Email address of the contact", select=1),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
|
||||
select=True, help='When sending mails, the default email address is taken from the sales team.'),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
|
|
|
@ -263,7 +263,7 @@
|
|||
<field name="categ_id" ref="crm.categ_oppor3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Interest in your Kitchen Design Project'" name="name"/>
|
||||
<field eval="'Send Catalogue by E-Mail'" name="title_action"/>
|
||||
<field eval="'Send Catalogue by Email'" name="title_action"/>
|
||||
<field eval="time.strftime('%Y-01-10')" name="date_action"/>
|
||||
<field eval="time.strftime('%Y-02-23')" name="date_deadline"/>
|
||||
<field name="partner_name">Lucie Vonck</field>
|
||||
|
|
|
@ -540,7 +540,7 @@ msgstr ""
|
|||
|
||||
#. module: crm
|
||||
#: field:crm.lead,email:0
|
||||
msgid "E-Mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm
|
||||
|
@ -2675,7 +2675,7 @@ msgstr ""
|
|||
|
||||
#. module: crm
|
||||
#: help:crm.lead,email_from:0
|
||||
msgid "E-mail address of the contact"
|
||||
msgid "Email address of the contact"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm
|
||||
|
@ -3401,7 +3401,7 @@ msgstr ""
|
|||
#. module: crm
|
||||
#: code:addons/crm/crm_action_rule.py:61
|
||||
#, python-format
|
||||
msgid "No E-Mail Found for your Company address!"
|
||||
msgid "No Email Found for your Company address!"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm
|
||||
|
@ -3563,7 +3563,7 @@ msgstr ""
|
|||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_mail_compose_message
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm
|
||||
|
|
|
@ -832,7 +832,7 @@ msgstr ""
|
|||
|
||||
#. module: crm_partner_assign
|
||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_partner_assign
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "E-Mail Templates",
|
||||
"name" : "Email Templates",
|
||||
"version" : "1.1",
|
||||
"author" : "OpenERP,OpenLabs",
|
||||
"website" : "http://openerp.com",
|
||||
|
|
|
@ -173,7 +173,7 @@ msgstr ""
|
|||
|
||||
#. module: email_template
|
||||
#: model:ir.model,name:email_template.model_mail_compose_message
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: email_template
|
||||
|
|
|
@ -191,7 +191,7 @@ class hr_employee(osv.osv):
|
|||
'bank_account_id':fields.many2one('res.partner.bank', 'Bank Account Number', domain="[('partner_id','=',address_home_id)]", help="Employee bank salary account"),
|
||||
'work_phone': fields.char('Work Phone', size=32, readonly=False),
|
||||
'mobile_phone': fields.char('Work Mobile', size=32, readonly=False),
|
||||
'work_email': fields.char('Work E-mail', size=240),
|
||||
'work_email': fields.char('Work Email', size=240),
|
||||
'work_location': fields.char('Office Location', size=32),
|
||||
'notes': fields.text('Notes'),
|
||||
'parent_id': fields.many2one('hr.employee', 'Manager'),
|
||||
|
|
|
@ -249,7 +249,7 @@ msgstr ""
|
|||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_email:0
|
||||
msgid "Work E-mail"
|
||||
msgid "Work Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
|
|
|
@ -307,7 +307,7 @@ msgstr ""
|
|||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.model,name:hr_evaluation.model_mail_compose_message
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
<tr><td>${_("Fax") |entity}: ${inv.partner_id.fax|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.partner_id.email :
|
||||
<tr><td>${_("E-mail") |entity}: ${inv.partner_id.email|entity}</td></tr>
|
||||
<tr><td>${_("Email") |entity}: ${inv.partner_id.email|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.partner_id.vat :
|
||||
<tr><td>${_("VAT") |entity}: ${inv.partner_id.vat|entity}</td></tr>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<tr><td>${_("Fax") |entity}: ${inv.partner_id.fax|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.partner_id.email :
|
||||
<tr><td>${_("E-mail") |entity}: ${inv.partner_id.email|entity}</td></tr>
|
||||
<tr><td>${_("Email") |entity}: ${inv.partner_id.email|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.partner_id.vat :
|
||||
<tr><td>${_("VAT") |entity}: ${inv.partner_id.vat|entity}</td></tr>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<td>${company.partner_id and company.partner_id.street2 or ''|entity}</td><td>${_('Fax')}:</td><td>${company.partner_id and company.partner_id.fax or ''|entity} </td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${company.partner_id and company.partner_id.zip or ''|entity} ${company.partner_id and company.partner_id.city or ''|entity}</td><td>${_('e-mail')}:</td><td><a href="mailto:${company.partner_id and company.partner_id.email or ''|entity}">${company.partner_id and company.partner_id.email or ''|entity}</a></td><td></td>
|
||||
<td>${company.partner_id and company.partner_id.zip or ''|entity} ${company.partner_id and company.partner_id.city or ''|entity}</td><td>${_('email')}:</td><td><a href="mailto:${company.partner_id and company.partner_id.email or ''|entity}">${company.partner_id and company.partner_id.email or ''|entity}</a></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${company.partner_id and company.partner_id.country_id.name or ''|entity}</td><td></td><td style="text-align:right;font-size:12" ><span class="page"/></td><td style="text-align:left;font-size:12;"> / <span class="topage"/></td>
|
||||
|
|
|
@ -194,7 +194,7 @@ msgstr ""
|
|||
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_mail_compose_message
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: mail
|
||||
|
|
|
@ -202,10 +202,10 @@ class mail_message(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'type': fields.selection([
|
||||
('email', 'e-mail'),
|
||||
('email', 'email'),
|
||||
('comment', 'Comment'),
|
||||
('notification', 'System notification'),
|
||||
], 'Type', help="Message type: e-mail for e-mail message, notification for system message, comment for other messages such as user replies"),
|
||||
], 'Type', help="Message type: email for email message, notification for system message, comment for other messages such as user replies"),
|
||||
'partner_id': fields.many2one('res.partner', 'Related partner'),
|
||||
'user_id': fields.many2one('res.users', 'Related User', readonly=1),
|
||||
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'),
|
||||
|
@ -228,7 +228,7 @@ class mail_message(osv.osv):
|
|||
}
|
||||
|
||||
#------------------------------------------------------
|
||||
# E-Mail api
|
||||
# Email api
|
||||
#------------------------------------------------------
|
||||
|
||||
def init(self, cr):
|
||||
|
|
|
@ -36,7 +36,7 @@ class res_users(osv.osv):
|
|||
('comments', 'Only comments'),
|
||||
('to_me', 'Only when sent directly to me'),
|
||||
('none', 'Never')
|
||||
], 'Receive Feeds by E-mail', required=True,
|
||||
], 'Receive Feeds by Email', required=True,
|
||||
help="Choose in which case you want to receive an email when you receive new feeds."),
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ from ..mail_message import to_email
|
|||
EXPRESSION_PATTERN = re.compile('(\$\{.+?\})')
|
||||
|
||||
class mail_compose_message(osv.osv_memory):
|
||||
"""Generic E-mail composition wizard. This wizard is meant to be inherited
|
||||
"""Generic Email composition wizard. This wizard is meant to be inherited
|
||||
at model and view level to provide specific wizard features.
|
||||
|
||||
The behavior of the wizard can be modified through the use of context
|
||||
|
@ -58,7 +58,7 @@ class mail_compose_message(osv.osv_memory):
|
|||
"""
|
||||
_name = 'mail.compose.message'
|
||||
_inherit = 'mail.message.common'
|
||||
_description = 'E-mail composition wizard'
|
||||
_description = 'Email composition wizard'
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""Overridden to provide specific defaults depending on the context
|
||||
|
|
|
@ -491,7 +491,7 @@ msgstr ""
|
|||
|
||||
#. module: marketing_campaign
|
||||
#: help:marketing.campaign.activity,email_template_id:0
|
||||
msgid "The e-mail to send when this activity is activated"
|
||||
msgid "The email to send when this activity is activated"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing_campaign
|
||||
|
@ -837,7 +837,7 @@ msgstr ""
|
|||
|
||||
#. module: marketing_campaign
|
||||
#: selection:marketing.campaign.activity,type:0
|
||||
msgid "E-mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing_campaign
|
||||
|
@ -957,7 +957,7 @@ msgstr ""
|
|||
#. module: marketing_campaign
|
||||
#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
|
||||
#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
|
||||
msgid "Campaign Followup"
|
||||
msgid "Campaign Follow-up"
|
||||
msgstr ""
|
||||
|
||||
#. module: marketing_campaign
|
||||
|
|
|
@ -392,7 +392,7 @@ class marketing_campaign_activity(osv.osv):
|
|||
_description = "Campaign Activity"
|
||||
|
||||
_action_types = [
|
||||
('email', 'E-mail'),
|
||||
('email', 'Email'),
|
||||
('report', 'Report'),
|
||||
('action', 'Custom Action'),
|
||||
# TODO implement the subcampaigns.
|
||||
|
@ -423,7 +423,7 @@ class marketing_campaign_activity(osv.osv):
|
|||
- Report: print an existing Report defined on the resource item and save it into a specific directory
|
||||
- Custom Action: execute a predefined action, e.g. to modify the fields of the resource record
|
||||
"""),
|
||||
'email_template_id': fields.many2one('email.template', "Email Template", help='The e-mail to send when this activity is activated'),
|
||||
'email_template_id': fields.many2one('email.template', "Email Template", help='The email to send when this activity is activated'),
|
||||
'report_id': fields.many2one('ir.actions.report.xml', "Report", help='The report to generate when this activity is activated', ),
|
||||
'report_directory_id': fields.many2one('document.directory','Directory',
|
||||
help="This folder is used to store the generated reports"),
|
||||
|
|
|
@ -421,7 +421,7 @@
|
|||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
|
||||
<field name="name">Campaign Followup</field>
|
||||
<field name="name">Campaign Follow-up</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">marketing.campaign.workitem</field>
|
||||
<field name="view_type">form</field>
|
||||
|
@ -442,7 +442,7 @@
|
|||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
|
||||
/>
|
||||
|
||||
<!-- Campaign Followups -->
|
||||
<!-- Campaign Follow-ups -->
|
||||
<act_window
|
||||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
|
||||
id="act_marketing_campaing_followup"
|
||||
|
|
|
@ -42,37 +42,37 @@
|
|||
record = self.browse(cr, uid, ids[0])
|
||||
assert record.state == 'todo' or record.state == 'done' , 'Marketing Workitem shoud be in draft state.'
|
||||
-
|
||||
I check followup detail of first activity.
|
||||
I check follow-up detail of first activity.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
|
||||
assert ids, 'Followup item is not created for first activity.'
|
||||
assert ids, 'Follow-up item is not created for first activity.'
|
||||
work_item_id = self.browse(cr ,uid ,ids[0] ,context)
|
||||
assert work_item_id.res_name, 'Resource Name is not defined.'
|
||||
-
|
||||
I process followup of first activity.
|
||||
I process follow-up of first activity.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
|
||||
self.process(cr, uid, ids)
|
||||
record = self.browse(cr, uid, ids)[0]
|
||||
assert record.state == "done", "Followup item should be closed after process."
|
||||
assert record.state == "done", "Follow-up item should be closed after process."
|
||||
-
|
||||
I check followup detail of second activity after process of first activity.
|
||||
I check follow-up detail of second activity after process of first activity.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
|
||||
assert ids, 'Followup item is not created for second activity.'
|
||||
assert ids, 'Follow-up item is not created for second activity.'
|
||||
-
|
||||
Now I increase credit limit of customer
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':41000}, context=context)
|
||||
-
|
||||
I process followup of second activity after set draft.
|
||||
I process follow-up of second activity after set draft.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
|
@ -80,21 +80,21 @@
|
|||
self.button_draft(cr, uid, ids, context=context)
|
||||
self.process(cr, uid, ids, context=context)
|
||||
record = self.browse(cr, uid, ids[0], context=context)
|
||||
assert record.state == "done", "Followup item should be closed after process."
|
||||
assert record.state == "done", "Follow-up item should be closed after process."
|
||||
-
|
||||
I check followup detail of third activity after process of second activity.
|
||||
I check follow-up detail of third activity after process of second activity.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
|
||||
assert ids, 'Followup item is not created for third activity.'
|
||||
assert ids, 'Follow-up item is not created for third activity.'
|
||||
-
|
||||
Now I increase credit limit of customer
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':151000}, context=context)
|
||||
-
|
||||
I process followup of third activity after set draft.
|
||||
I process follow-up of third activity after set draft.
|
||||
-
|
||||
!python {model: marketing.campaign.workitem}: |
|
||||
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
|
||||
|
@ -102,7 +102,7 @@
|
|||
self.button_draft(cr, uid, ids, context=context)
|
||||
self.process(cr, uid, ids, context=context)
|
||||
record = self.browse(cr, uid, ids[0], context=context)
|
||||
assert record.state == "done", "Followup item should be closed after process."
|
||||
assert record.state == "done", "Follow-up item should be closed after process."
|
||||
-
|
||||
I print workitem report.
|
||||
-
|
||||
|
|
|
@ -52,7 +52,7 @@ msgstr ""
|
|||
#. module: plugin_thunderbird
|
||||
#: view:plugin_thunderbird.installer:0
|
||||
msgid ""
|
||||
"This plug-in allows you to link your e-mail to OpenERP's documents. You can "
|
||||
"This plug-in allows you to link your email to OpenERP's documents. You can "
|
||||
"attach it to any existing one in OpenERP or create a new one."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<attribute name="string">Install Thunderbird Plug-In</attribute>
|
||||
</form>
|
||||
<separator string="title" position="before">
|
||||
<label string="This plug-in allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."/>
|
||||
<label string="This plug-in allows you to link your email to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."/>
|
||||
</separator>
|
||||
<xpath expr="//button[@string='Install Modules']" position="replace">
|
||||
<button colspan="1" icon="gtk-close" special="cancel" string="_Close"/>
|
||||
|
|
|
@ -60,7 +60,7 @@ msgstr ""
|
|||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,user_email:0
|
||||
msgid "E-mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: portal
|
||||
|
|
|
@ -197,7 +197,7 @@ class wizard_user(osv.osv_memory):
|
|||
string='User Name',
|
||||
help="The user's real name"),
|
||||
'user_email': fields.char(size=64, required=True,
|
||||
string='E-mail',
|
||||
string='Email',
|
||||
help="Will be used as user login. "
|
||||
"Also necessary to send the account information to new users"),
|
||||
'lang': fields.selection(_lang_get, required=True,
|
||||
|
|
|
@ -663,7 +663,7 @@ msgstr ""
|
|||
|
||||
#. module: project
|
||||
#: model:ir.model,name:project.model_mail_compose_message
|
||||
msgid "E-mail composition wizard"
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: project
|
||||
|
|
|
@ -72,7 +72,7 @@ msgstr ""
|
|||
|
||||
#. module: report_webkit_sample
|
||||
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:25
|
||||
msgid "E-mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_webkit_sample
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<tr><td>${_("Fax")}: ${inv.address_invoice_id.fax|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.address_invoice_id.email :
|
||||
<tr><td>${_("E-mail")}: ${inv.address_invoice_id.email|entity}</td></tr>
|
||||
<tr><td>${_("Email")}: ${inv.address_invoice_id.email|entity}</td></tr>
|
||||
%endif
|
||||
%if inv.partner_id.vat :
|
||||
<tr><td>${_("VAT")}: ${inv.partner_id.vat|entity}</td></tr>
|
||||
|
|
|
@ -52,7 +52,7 @@ msgstr ""
|
|||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Share with these People (one e-mail per line)"
|
||||
msgid "Share with these People (one email per line)"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
|
@ -372,7 +372,7 @@ msgstr ""
|
|||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid ""
|
||||
"An e-mail notification with instructions has been sent to the following "
|
||||
"An email notification with instructions has been sent to the following "
|
||||
"people:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -404,7 +404,7 @@ msgstr ""
|
|||
#. module: share
|
||||
#: help:share.wizard,message:0
|
||||
msgid ""
|
||||
"An optional personal message, to be included in the e-mail notification."
|
||||
"An optional personal message, to be included in the email notification."
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
|
@ -472,7 +472,7 @@ msgstr ""
|
|||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:197
|
||||
#, python-format
|
||||
msgid "No e-mail address configured"
|
||||
msgid "No email address configured"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
|
@ -512,7 +512,7 @@ msgstr ""
|
|||
#: code:addons/share/wizard/share_wizard.py:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You must configure your e-mail address in the user preferences before using "
|
||||
"You must configure your email address in the user preferences before using "
|
||||
"the Share button."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -176,7 +176,7 @@ class share_wizard(osv.osv_memory):
|
|||
help='Main access page for users that are granted shared access'),
|
||||
'name': fields.char('Share Title', size=64, required=True, help="Title for the share (displayed to users as menu and shortcut name)"),
|
||||
'record_name': fields.char('Record name', size=128, help="Name of the shared record, if sharing a precise record"),
|
||||
'message': fields.text("Personal Message", help="An optional personal message, to be included in the e-mail notification."),
|
||||
'message': fields.text("Personal Message", help="An optional personal message, to be included in the email notification."),
|
||||
|
||||
'embed_code': fields.function(_embed_code, type='text'),
|
||||
'embed_option_title': fields.boolean("Display title"),
|
||||
|
@ -200,8 +200,8 @@ class share_wizard(osv.osv_memory):
|
|||
def go_step_1(self, cr, uid, ids, context=None):
|
||||
wizard_data = self.browse(cr,uid,ids,context)[0]
|
||||
if wizard_data.user_type == 'emails' and not self.has_email(cr, uid, context=context):
|
||||
raise osv.except_osv(_('No e-mail address configured'),
|
||||
_('You must configure your e-mail address in the user preferences before using the Share button.'))
|
||||
raise osv.except_osv(_('No email address configured'),
|
||||
_('You must configure your email address in the user preferences before using the Share button.'))
|
||||
model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'share', 'action_share_wizard_step1')
|
||||
action = self.pool.get(model).read(cr, uid, res_id, context=context)
|
||||
action['res_id'] = ids[0]
|
||||
|
|
|
@ -37,10 +37,10 @@
|
|||
<field name="user_type" invisible="1"/>
|
||||
<field name="invite" invisible="1"/>
|
||||
<group>
|
||||
<group name="emails_group" attrs="{'invisible':['|', ('user_type', '!=', 'emails'), ('invite', '=', True)]}" string="Share with these People (one e-mail per line)">
|
||||
<group name="emails_group" attrs="{'invisible':['|', ('user_type', '!=', 'emails'), ('invite', '=', True)]}" string="Share with these People (one email per line)">
|
||||
<field colspan="2" nolabel="1" name="new_users" attrs="{'required':[('user_type','=','emails'), ('invite', '!=', True)]}"/>
|
||||
</group>
|
||||
<group name="email_lines" attrs="{'invisible':[('invite', '!=', True)]}" string="Share with these People (one e-mail per line)">
|
||||
<group name="email_lines" attrs="{'invisible':[('invite', '!=', True)]}" string="Share with these People (one email per line)">
|
||||
<field name="email_1"/>
|
||||
<field name="email_2"/>
|
||||
<field name="email_3"/>
|
||||
|
@ -69,7 +69,7 @@
|
|||
<field name="access_mode" invisible="1"/>
|
||||
</header>
|
||||
<group attrs="{'invisible':[('user_type','=','embedded')]}">
|
||||
<separator string="An e-mail notification with instructions has been sent to the following people:"/>
|
||||
<separator string="An email notification with instructions has been sent to the following people:"/>
|
||||
<field name="result_line_ids" nolabel="1" mode="tree">
|
||||
<tree string="Summary">
|
||||
<field name="login"/>
|
||||
|
|
|
@ -996,7 +996,7 @@ msgstr ""
|
|||
|
||||
#. module: survey
|
||||
#: field:survey,send_response:0
|
||||
msgid "E-mail Notification on Answer"
|
||||
msgid "Email Notification on Answer"
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
|
@ -1211,7 +1211,7 @@ msgstr ""
|
|||
|
||||
#. module: survey
|
||||
#: field:survey.request,email:0
|
||||
msgid "E-mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
|
|
|
@ -66,7 +66,7 @@ class survey(osv.osv):
|
|||
'note': fields.text('Description', size=128),
|
||||
'history': fields.one2many('survey.history', 'survey_id', 'History Lines', readonly=True),
|
||||
'users': fields.many2many('res.users', 'survey_users_rel', 'sid', 'uid', 'Users'),
|
||||
'send_response': fields.boolean('E-mail Notification on Answer'),
|
||||
'send_response': fields.boolean('Email Notification on Answer'),
|
||||
'type': fields.many2one('survey.type', 'Type'),
|
||||
'invited_user_ids': fields.many2many('res.users', 'survey_invited_user_rel', 'sid', 'uid', 'Invited User'),
|
||||
}
|
||||
|
@ -699,7 +699,7 @@ class survey_request(osv.osv):
|
|||
_columns = {
|
||||
'date_deadline': fields.date("Deadline date"),
|
||||
'user_id': fields.many2one("res.users", "User"),
|
||||
'email': fields.char("E-mail", size=64),
|
||||
'email': fields.char("Email", size=64),
|
||||
'survey_id': fields.many2one("survey", "Survey", required=1, ondelete='cascade'),
|
||||
'response': fields.many2one('survey.response', 'Answer'),
|
||||
'state': fields.selection([('draft','Draft'),('cancel', 'Cancelled'),('waiting_answer', 'Waiting Answer'),('done', 'Done')], 'Status', readonly=1)
|
||||
|
|
|
@ -435,7 +435,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
|
||||
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False, context=None):
|
||||
"""
|
||||
If any user give answer of survey then last create report of this answer and if 'E-mail Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
|
||||
If any user give answer of survey then last create report of this answer and if 'Email Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
|
||||
"""
|
||||
if not report_name or not res_ids:
|
||||
return (False, Exception('Report name and Resources ids are required !!!'))
|
||||
|
|
|
@ -191,7 +191,7 @@ class survey_send_invitation(osv.osv_memory):
|
|||
if skipped:
|
||||
note += "%d contacts where ignored (an email address is missing).\n\n" % (skipped)
|
||||
if error:
|
||||
note += 'E-Mail not send successfully:\n====================\n%s\n' % (error)
|
||||
note += 'Email not send successfully:\n====================\n%s\n' % (error)
|
||||
context.update({'note' : note})
|
||||
return {
|
||||
'view_type': 'form',
|
||||
|
|
Loading…
Reference in New Issue