[Merge] from trunk
bzr revid: nel@tinyerp.com-20100401110826-cqsxgmql0g534ws4
This commit is contained in:
@@ -404,7 +404,6 @@ class sale_order_line(osv.osv):
|
||||
|
||||
if rec:
|
||||
pool_inv_line.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context)
|
||||
cr.commit()
|
||||
return create_ids
|
||||
|
||||
sale_order_line()
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_chart
|
||||
|
||||
@@ -562,7 +562,6 @@ are both optional, but if one occurs, so MUST the other"""),
|
||||
cr.execute('Update %s set base_calendar_alarm_id=%s, alarm_id=%s \
|
||||
where id=%s' % (model_obj._table, \
|
||||
alarm_id, basic_alarm.id, data.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
def do_alarm_unlink(self, cr, uid, ids, model, context={}):
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base_contact
|
||||
|
||||
@@ -60,7 +60,6 @@ class report_xml(osv.osv):
|
||||
'report_sxw_content': base64.decodestring(file_sxw),
|
||||
'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())),
|
||||
})
|
||||
cr.commit()
|
||||
db = pooler.get_db_only(cr.dbname)
|
||||
interface.register_all(db)
|
||||
return True
|
||||
|
||||
@@ -57,15 +57,12 @@ class board_board(osv.osv):
|
||||
|
||||
def write(self, cr, uid, ids, vals, context={}):
|
||||
result = super(board_board, self).write(cr, uid, ids, vals, context)
|
||||
cr.commit()
|
||||
|
||||
board = self.pool.get('board.board').browse(cr, uid, ids[0])
|
||||
|
||||
view = self.create_view(cr, uid, ids[0], context)
|
||||
id = board.view_id.id
|
||||
cr.execute("update ir_ui_view set arch=%s where id=%s" , (view, id))
|
||||
cr.commit()
|
||||
|
||||
return result
|
||||
|
||||
def create(self, cr, user, vals, context=None):
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: board_account
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: board_project
|
||||
|
||||
+4
-2
@@ -344,11 +344,13 @@ class crm_case(osv.osv):
|
||||
obj = self.pool.get('crm.case.history')
|
||||
data['description'] = details or case.description
|
||||
data['email_to'] = email or \
|
||||
(case.section_id and case.section_id.reply_to) or \
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or False
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)
|
||||
data['email_from'] = email_from or \
|
||||
(case.section_id and case.section_id.reply_to) or \
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or False
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)
|
||||
res = obj.create(cr, uid, data, context)
|
||||
return True
|
||||
_history = __history
|
||||
|
||||
@@ -55,11 +55,14 @@ class case(osv.osv):
|
||||
if case.section_id.reply_to and case.email_from:
|
||||
src = case.email_from
|
||||
dest = case.section_id.reply_to
|
||||
body = case.email_last or case.description
|
||||
body = ""
|
||||
body = case.email_last or case.description
|
||||
if not destination:
|
||||
src, dest = dest, src
|
||||
if case.user_id.signature:
|
||||
body += '\n\n%s' % (case.user_id.signature or '')
|
||||
if body and case.user_id.signature:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
|
||||
body = self.format_body(body)
|
||||
dest = [dest]
|
||||
|
||||
attach_to_send = None
|
||||
@@ -74,15 +77,16 @@ class case(osv.osv):
|
||||
src,
|
||||
dest,
|
||||
"Reminder: [%s] %s" % (str(case.id), case.name, ),
|
||||
self.format_body(body),
|
||||
body,
|
||||
reply_to=case.section_id.reply_to,
|
||||
openobject_id=str(case.id),
|
||||
attach=attach_to_send
|
||||
)
|
||||
if flag:
|
||||
raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
|
||||
else:
|
||||
raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
|
||||
self._history(cr, uid, [case], _('Send'), history=True, email=dest, details=body, email_from=src)
|
||||
#if flag:
|
||||
# raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
|
||||
#else:
|
||||
# raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
|
||||
return True
|
||||
|
||||
def _check(self, cr, uid, ids=False, context={}):
|
||||
@@ -120,6 +124,23 @@ case()
|
||||
class base_action_rule(osv.osv):
|
||||
_inherit = 'base.action.rule'
|
||||
_description = 'Action Rules'
|
||||
|
||||
def email_send(self, cr, uid, obj, emails, body, emailfrom=tools.config.get('email_from',False), context={}):
|
||||
body = self.format_mail(obj, body)
|
||||
if not emailfrom:
|
||||
if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and obj.user_id.address_id.email:
|
||||
emailfrom = obj.user_id.address_id.email
|
||||
|
||||
name = '[%d] %s' % (obj.id, tools.ustr(obj.name))
|
||||
emailfrom = tools.ustr(emailfrom)
|
||||
if hasattr(obj, 'section_id') and obj.section_id and obj.section_id.reply_to:
|
||||
reply_to = obj.section_id.reply_to
|
||||
else:
|
||||
reply_to = emailfrom
|
||||
if not emailfrom:
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_("No E-Mail ID Found for your Company address!"))
|
||||
return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id))
|
||||
|
||||
def do_check(self, cr, uid, action, obj, context={}):
|
||||
ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context)
|
||||
@@ -146,7 +167,7 @@ class base_action_rule(osv.osv):
|
||||
res = super(base_action_rule, self).do_action(cr, uid, action, model_obj, obj, context=context)
|
||||
write = {}
|
||||
|
||||
if action.act_section_id:
|
||||
if hasattr(action, act_section_id) and action.act_section_id:
|
||||
obj.section_id = action.act_section_id
|
||||
write['section_id'] = action.act_section_id.id
|
||||
|
||||
|
||||
@@ -34,24 +34,28 @@ from osv.orm import except_orm
|
||||
|
||||
class crm_cases(osv.osv):
|
||||
_name = "crm.case"
|
||||
_inherit = "crm.case"
|
||||
_inherit = "crm.case"
|
||||
|
||||
def msg_new(self, cr, uid, msg):
|
||||
mailgate_obj = self.pool.get('mail.gateway')
|
||||
msg_body = mailgate_obj.msg_body_get(msg)
|
||||
msg_subject = mailgate_obj._decode_header(msg['Subject'])
|
||||
msg_from = mailgate_obj._decode_header(msg['From'])
|
||||
msg_cc = mailgate_obj._decode_header(msg['Cc'])
|
||||
body = self.format_body(msg_body['body'])
|
||||
data = {
|
||||
'name': msg['Subject'],
|
||||
'email_from': msg['From'],
|
||||
'email_cc': msg['Cc'],
|
||||
'name': msg_subject,
|
||||
'email_from': msg_from,
|
||||
'email_cc': msg_cc,
|
||||
'user_id': False,
|
||||
'description': msg_body['body'],
|
||||
'description': body,
|
||||
}
|
||||
res = mailgate_obj.partner_get(cr, uid, msg['From'])
|
||||
res = mailgate_obj.partner_get(cr, uid, msg_from)
|
||||
if res:
|
||||
data.update(res)
|
||||
res = self.create(cr, uid, data)
|
||||
cases = self.browse(cr, uid, [res])
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, email=msg['From'])
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from)
|
||||
return res
|
||||
|
||||
def msg_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
|
||||
@@ -79,10 +83,10 @@ class crm_cases(osv.osv):
|
||||
|
||||
if 'partner' in msg_actions:
|
||||
data['email_from'] = msg_actions['partner'][:128]
|
||||
|
||||
msg_from = self._decode_header(msg['From'])
|
||||
res = self.write(cr, uid, select, data)
|
||||
cases = self.browse(cr, uid, select)
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, email=msg['From'])
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=body_data, email_from=msg['From'])
|
||||
getattr(self,act)(cr, uid, select)
|
||||
return res
|
||||
|
||||
|
||||
@@ -78,10 +78,8 @@ class crm_segmentation(osv.osv):
|
||||
|
||||
for partner_id in partners:
|
||||
cr.execute('insert into res_partner_category_rel (category_id,partner_id) values (%s,%s)', (categ['categ_id'][0],partner_id))
|
||||
cr.commit()
|
||||
|
||||
self.write(cr, uid, [id], {'state':'not running', 'partner_id':0})
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
def process_stop(self, cr, uid, ids, *args):
|
||||
|
||||
@@ -216,10 +216,12 @@
|
||||
<tree string="Case logs">
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="som"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id"/>
|
||||
<!--
|
||||
<field name="som"/>
|
||||
<field name="canal_id"/>
|
||||
-->
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -233,9 +235,11 @@
|
||||
<tree string="Case History">
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="som"/>
|
||||
<field name="user_id"/>
|
||||
<!--
|
||||
<field name="som"/>
|
||||
<field name="canal_id"/>
|
||||
-->
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-03-30 20:39+0000\n"
|
||||
"PO-Revision-Date: 2010-03-31 14:33+0000\n"
|
||||
"Last-Translator: smii <Unknown>\n"
|
||||
"Language-Team: Finnish <fi@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -2799,12 +2799,12 @@ msgstr "Aseta kokous"
|
||||
#. module: crm
|
||||
#: field:crm.menu.config_wizard,meeting:0
|
||||
msgid "Calendar of Meetings"
|
||||
msgstr ""
|
||||
msgstr "Kokouskalenteri"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
msgid "Cases By Stage and Estimates"
|
||||
msgstr ""
|
||||
msgstr "Tapahtumat vaiheen ja arvioiden mukaan"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
@@ -2834,18 +2834,18 @@ msgstr "Suurin kommunikointihistoria"
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
msgid "Meeting For Leads Generation"
|
||||
msgstr ""
|
||||
msgstr "Kokous ohjausten luomiseksi"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_view:crm.lead.opportunity_set,create_partner:0
|
||||
#: wizard_view:crm.lead.partner_create,init:0
|
||||
msgid "Are you sure you want to create a partner based on this lead ?"
|
||||
msgstr ""
|
||||
msgstr "Oletko varma, että haluat luoda kumppanin perustuen tähän johtoon ?"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job6
|
||||
msgid "Refused by Employee"
|
||||
msgstr ""
|
||||
msgstr "Hylätty työntekijän toimesta"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,partner_name:0
|
||||
@@ -2855,7 +2855,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job2
|
||||
msgid "First Interview"
|
||||
msgstr ""
|
||||
msgstr "Ensimmäinen haastattelu"
|
||||
|
||||
#. module: crm
|
||||
#: view:report.crm.case.section.categ.categ2:0
|
||||
@@ -2863,7 +2863,7 @@ msgstr ""
|
||||
#: view:report.crm.case.section.categ2:0
|
||||
#: view:report.crm.case.section.stage:0
|
||||
msgid "This Month"
|
||||
msgstr ""
|
||||
msgstr "Tässä kuussa"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
|
||||
@@ -34,7 +34,7 @@ import time, socket
|
||||
email_re = re.compile(r"([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6})")
|
||||
case_re = re.compile(r"\[([0-9]+)\]", re.UNICODE)
|
||||
command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE)
|
||||
reference_re = re.compile("<.*-tinycrm-(\\d+)@(.*)>", re.UNICODE)
|
||||
reference_re = re.compile("<.*-openobject-(\\d+)@(.*)>", re.UNICODE)
|
||||
|
||||
priorities = {
|
||||
'1': '1 (Highest)',
|
||||
@@ -157,21 +157,37 @@ class email_parser(object):
|
||||
'partner_id': adr[0].get('partner_id', False) and adr[0]['partner_id'][0] or False
|
||||
}
|
||||
|
||||
def _to_decode(self, s, charsets):
|
||||
for charset in charsets:
|
||||
if charset:
|
||||
try:
|
||||
return s.decode(charset)
|
||||
except UnicodeError:
|
||||
pass
|
||||
try:
|
||||
return s.decode('ascii')
|
||||
except UnicodeError:
|
||||
return s
|
||||
|
||||
def _decode_header(self, s):
|
||||
from email.Header import decode_header
|
||||
s = decode_header(s)
|
||||
return ''.join(map(lambda x:x[0].decode(x[1] or 'ascii', 'replace'), s))
|
||||
s = decode_header(s)
|
||||
return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), s))
|
||||
|
||||
def msg_new(self, msg):
|
||||
message = self.msg_body_get(msg)
|
||||
msg_subject = self._decode_header(msg['Subject'])
|
||||
msg_from = self._decode_header(msg['From'])
|
||||
msg_cc = self._decode_header(msg['Cc'] or '')
|
||||
|
||||
data = {
|
||||
'name': self._decode_header(msg['Subject']),
|
||||
'email_from': self._decode_header(msg['From']),
|
||||
'email_cc': self._decode_header(msg['Cc'] or ''),
|
||||
'name': msg_subject,
|
||||
'email_from': msg_from,
|
||||
'email_cc': msg_cc,
|
||||
'user_id': False,
|
||||
'description': message['body'],
|
||||
}
|
||||
data.update(self.partner_get(self._decode_header(msg['From'])))
|
||||
data.update(self.partner_get(msg_from))
|
||||
|
||||
try:
|
||||
id = self.rpc(self.model, 'create', data)
|
||||
@@ -222,7 +238,7 @@ class email_parser(object):
|
||||
if part.get_content_maintype()=='text':
|
||||
buf = part.get_payload(decode=True)
|
||||
if buf:
|
||||
txt = buf.decode(part.get_charsets()[0] or 'ascii', 'replace')
|
||||
txt = self._to_decode(buf, part.get_charsets())
|
||||
txt = re.sub("<(\w)>", replace, txt)
|
||||
txt = re.sub("<\/(\w)>", replace, txt)
|
||||
if txt and part.get_content_subtype() == 'plain':
|
||||
|
||||
@@ -44,23 +44,12 @@ class crm_send_new_email(osv.osv_memory):
|
||||
}
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Closes Phonecall to Opportunity form
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Phonecall to Opportunity's IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
""" Closes Phonecall to Opportunity form
|
||||
"""
|
||||
return {'type':'ir.actions.act_window_close'}
|
||||
|
||||
def action_send(self, cr, uid, ids, context=None):
|
||||
""" This sends an email to ALL the addresses of the selected partners.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Phonecall to Opportunity's IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
@@ -90,18 +79,19 @@ class crm_send_new_email(osv.osv_memory):
|
||||
|
||||
if case.user_id.signature:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body)
|
||||
body = case_pool.format_body(body)
|
||||
email_from = data.get('email_from', False)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from)
|
||||
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
data['subject'],
|
||||
case_pool.format_body(body),
|
||||
body,
|
||||
attach=attach,
|
||||
reply_to=case.section_id.reply_to,
|
||||
openobject_id=str(case.id),
|
||||
)
|
||||
openobject_id=str(case.id),
|
||||
)
|
||||
if flag:
|
||||
if data['state'] == 'unchanged':
|
||||
pass
|
||||
@@ -118,18 +108,12 @@ class crm_send_new_email(osv.osv_memory):
|
||||
# raise osv.except_osv(_('Email!'), ("Email Successfully Sent"))
|
||||
# else:
|
||||
# raise osv.except_osv(_('Warning!'), _("Email not sent !"))
|
||||
|
||||
return {}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
This function gets default values
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param fields: List of fields for default value
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
@return : default values of fields.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
@@ -151,7 +135,8 @@ class crm_send_new_email(osv.osv_memory):
|
||||
if 'email_to' in fields:
|
||||
res.update({'email_to': case.email_from})
|
||||
if 'email_from' in fields:
|
||||
res.update({'email_from': (case.user_id and case.user_id.address_id and \
|
||||
res.update({'email_from': (case.section_id and case.section_id.reply_to) or \
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)})
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
@@ -166,13 +151,6 @@ class crm_send_new_email(osv.osv_memory):
|
||||
def get_reply_defaults(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
This function gets default values for reply mail
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param fields: List of fields for default value
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
@return : default values of fields.
|
||||
"""
|
||||
hist_obj = self.pool.get('crm.case.history')
|
||||
res_ids = context and context.get('active_ids', []) or []
|
||||
@@ -182,24 +160,24 @@ class crm_send_new_email(osv.osv_memory):
|
||||
model_pool = self.pool.get(model)
|
||||
case = model_pool.browse(cr, uid, hist.log_id.res_id)
|
||||
if 'email_to' in fields:
|
||||
res.update({'email_to': hist.email_from or (case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)})
|
||||
res.update({'email_to': case.email_from or hist.email_from or False})
|
||||
if 'email_from' in fields:
|
||||
res.update({'email_from': (case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)})
|
||||
res.update({'email_from': (case.section_id and case.section_id.reply_to) or \
|
||||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from',False)})
|
||||
if 'text' in fields:
|
||||
header = '-------- Original Message --------'
|
||||
sender = 'From: %s' %(hist.email_from or tools.config.get('email_from',False))
|
||||
to = 'To: %s' % (hist.email_to)
|
||||
sentdate = 'Sent: %s' % (hist.date)
|
||||
sender = 'From: %s' %(hist.email_from or '')
|
||||
to = 'To: %s' % (hist.email_to or '')
|
||||
sentdate = 'Date: %s' % (hist.date)
|
||||
desc = '\n%s'%(hist.description)
|
||||
original = [header, sender, to, sentdate, desc]
|
||||
original = '\n'.join(original)
|
||||
res.update({'text': '\n\n%s'%(original)})
|
||||
res['text']=original
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
if 'state' in fields:
|
||||
res.update({'state': 'pending'})
|
||||
res['state']='pending'
|
||||
return res
|
||||
|
||||
def view_init(self, cr, uid, fields_list, context=None):
|
||||
|
||||
@@ -243,10 +243,8 @@ class crm_segmentation(osv.osv):
|
||||
|
||||
for partner_id in partners:
|
||||
cr.execute('insert into res_partner_category_rel (category_id,partner_id) values (%s,%s)', (categ['categ_id'][0],partner_id))
|
||||
cr.commit()
|
||||
|
||||
self.write(cr, uid, [id], {'state':'not running', 'partner_id':0})
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
crm_segmentation()
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: idea
|
||||
|
||||
@@ -210,10 +210,22 @@ class mail_gateway(osv.osv):
|
||||
}
|
||||
return res
|
||||
|
||||
def _decode_header(self, s):
|
||||
def _to_decode(self, s, charsets):
|
||||
for charset in charsets:
|
||||
if charset:
|
||||
try:
|
||||
return s.decode(charset)
|
||||
except UnicodeError:
|
||||
pass
|
||||
try:
|
||||
return s.decode('ascii')
|
||||
except UnicodeError:
|
||||
return s
|
||||
|
||||
def _decode_header(self, s):
|
||||
from email.Header import decode_header
|
||||
s = decode_header(s)
|
||||
return ''.join(map(lambda x:x[0].decode(x[1] or 'ascii', 'replace'), s))
|
||||
return ''.join(map(lambda x:self._to_decode(x[0], x[1]), s))
|
||||
|
||||
def msg_new(self, cr, uid, msg, model):
|
||||
message = self.msg_body_get(msg)
|
||||
@@ -250,7 +262,7 @@ class mail_gateway(osv.osv):
|
||||
if part.get_content_maintype()=='text':
|
||||
buf = part.get_payload(decode=True)
|
||||
if buf:
|
||||
txt = buf.decode(part.get_charsets()[0] or 'ascii', 'replace')
|
||||
txt = self._to_decode(buf, part.get_charsets())
|
||||
txt = re.sub("<(\w)>", replace, txt)
|
||||
txt = re.sub("<\/(\w)>", replace, txt)
|
||||
if txt and part.get_content_subtype() == 'plain':
|
||||
@@ -362,13 +374,11 @@ class mail_gateway(osv.osv):
|
||||
del msg['Subject']
|
||||
msg['Subject'] = '[%s] %s' %(str(res_id), subject)
|
||||
|
||||
em = [user_email, from_email] + (cc_email or '').split(',')
|
||||
em = [user_email or '', from_email] + (cc_email or '').split(',')
|
||||
emails = map(self.emails_get, filter(None, em))
|
||||
|
||||
mm = [self._decode_header(msg['From']), self._decode_header(msg['To'])]+self._decode_header(msg.get('Cc','')).split(',')
|
||||
msg_mails = map(self.emails_get, filter(None, mm))
|
||||
|
||||
emails = filter(lambda m: m and m not in msg_mails, emails)
|
||||
emails = filter(lambda m: m and m not in msg_mails, emails)
|
||||
try:
|
||||
self.msg_send(msg, mailgateway.reply_to, emails, priority, res_id)
|
||||
if hasattr(self.pool.get(res_model), 'msg_send'):
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-15 20:33+0000\n"
|
||||
"Last-Translator: lem0na <nickyk@gmx.net>\n"
|
||||
"PO-Revision-Date: 2010-03-31 09:02+0000\n"
|
||||
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:54+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
@@ -1889,7 +1889,7 @@ msgstr ""
|
||||
#. module: mrp
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_root
|
||||
msgid "Manufacturing"
|
||||
msgstr ""
|
||||
msgstr "Производство"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action3
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
|
||||
+2
-6
@@ -144,8 +144,7 @@ class mrp_bom(osv.osv):
|
||||
|
||||
@return: True
|
||||
|
||||
"""
|
||||
|
||||
"""
|
||||
result = {}
|
||||
for bom in self.browse(cr, uid, ids, context=context):
|
||||
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
|
||||
@@ -156,10 +155,7 @@ class mrp_bom(osv.osv):
|
||||
sids = self.pool.get('mrp.bom').search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
|
||||
if sids:
|
||||
bom2 = self.pool.get('mrp.bom').browse(cr, uid, sids[0], context=context)
|
||||
result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
|
||||
print "name",name
|
||||
print "arg",arg
|
||||
print "result",result
|
||||
result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
|
||||
return result
|
||||
def _compute_type(self, cr, uid, ids, field_name, arg, context):
|
||||
res = dict(map(lambda x: (x,''), ids))
|
||||
|
||||
@@ -62,6 +62,7 @@ Main features :
|
||||
'wizard/pos_payment_report_user.xml',
|
||||
'wizard/pos_payment_report.xml',
|
||||
'wizard/pos_payment.xml',
|
||||
'wizard/pos_scan_product_view.xml',
|
||||
'pos_report.xml',
|
||||
'pos_wizard.xml',
|
||||
'pos_view.xml',
|
||||
|
||||
@@ -158,28 +158,8 @@ class pos_order(osv.osv):
|
||||
if val<o.date_created:
|
||||
val=o.date_created
|
||||
if val:
|
||||
# cr.execute("Update pos_order set date_payment='%s' where id = %d"%(val, order.id))
|
||||
# cr.commit()
|
||||
res[order.id]=val
|
||||
return res
|
||||
# tax_obj = self.pool.get('account.tax')
|
||||
# pay_obj = self.pool.get('pos.payment')
|
||||
# for order in self.browse(cr, uid, ids):
|
||||
# val = 0.0
|
||||
# tot =0.0
|
||||
# for pay in order.payments:
|
||||
# tot+= pay.amount
|
||||
# if order.amount_total==tot:
|
||||
# res[order.id]=time.strftime('%Y-%m-%d')
|
||||
# for line in order.lines:
|
||||
|
||||
# val = reduce(lambda x, y: x+round(y['amount'], 2),
|
||||
# tax_obj.compute_inv(cr, uid, line.product_id.taxes_id,
|
||||
# line.price_unit * \
|
||||
# (1-(line.discount or 0.0)/100.0), line.qty),
|
||||
# val)
|
||||
|
||||
# res[order.id] = val
|
||||
|
||||
def _amount_tax(self, cr, uid, ids, field_name, arg, context):
|
||||
res = {}
|
||||
@@ -565,7 +545,6 @@ class pos_order(osv.osv):
|
||||
val=val and val[0] or None
|
||||
if val:
|
||||
cr.execute("Update pos_order set date_payment='%s' where id = %d"%(val, order.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
|
||||
@@ -1381,7 +1360,7 @@ class report_sales_by_margin_pos(osv.osv):
|
||||
# 'pos_name': fields.char('POS Order', size=64, readonly=True),
|
||||
'product_name':fields.char('Product Name', size=64, readonly=True),
|
||||
'date_order': fields.date('Order Date',required=True, select=True),
|
||||
'amount': fields.float('Total', readonly=True, select=True),
|
||||
# 'amount': fields.float('Total', readonly=True, select=True),
|
||||
'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
|
||||
'qty': fields.float('Qty', readonly=True, select=True),
|
||||
'net_margin_per_qty':fields.float('Net margin per Qty', readonly=True, select=True),
|
||||
@@ -1430,7 +1409,7 @@ class report_sales_by_margin_pos_month(osv.osv):
|
||||
# 'pos_name': fields.char('POS Order', size=64, readonly=True),
|
||||
'product_name':fields.char('Product Name', size=64, readonly=True),
|
||||
'date_order': fields.date('Order Date',required=True, select=True),
|
||||
'amount': fields.float('Total', readonly=True, select=True),
|
||||
#'amount': fields.float('Total', readonly=True, select=True),
|
||||
'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
|
||||
'qty': fields.float('Qty', readonly=True, select=True),
|
||||
'net_margin_per_qty':fields.float('Net margin per Qty', readonly=True, select=True),
|
||||
|
||||
@@ -27,4 +27,14 @@
|
||||
"access_pos_open_statement","pos.close.statement","model_pos_close_statement","point_of_sale.group_pos_user",1,0,0,0
|
||||
"acess_pos_box_entries ","pos.box.entries ","model_pos_box_entries","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_box_out","pos.box.out","model_pos_box_out","point_of_sale.group_pos_user",1,0,0,0
|
||||
"acess_pos_details ","pos.details ","model_pos_details","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_details ","pos.details ","model_pos_details","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_details ","pos.details ","model_pos_details","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_sale_user","pos.sale.user","model_pos_sale_user","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_sale_user","pos.sales.user.today","model_pos_sales_user_today","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_sales_user_today_current_user","pos.sales.user.today.current_user","model_pos_sales_user_today_current_user","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_all_closed_cashbox_of_the_day","all.closed.cashbox.of.the.day","model_all_closed_cashbox_of_the_day","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_receipt","pos.receipt ","model_pos_receipt","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_payment_report_user","pos.payment.report.user","model_pos_payment_report_user","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_payment_report_date ","pos.payment.report.date ","model_pos_payment_report_date","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_make_payment","pos.make.payment","model_pos_make_payment","point_of_sale.group_pos_user",1,0,0,0
|
||||
"access_pos_scan_product","pos.scan.product","model_pos_scan_product","point_of_sale.group_pos_user",1,0,0,0
|
||||
|
||||
|
@@ -20,11 +20,8 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
#import wizard_pos_payment
|
||||
import wizard_default_journal
|
||||
import wizard_scan_product
|
||||
import wizard_return
|
||||
#import wizard_open_statement
|
||||
|
||||
import pos_add_product
|
||||
import pos_confirm
|
||||
import pos_discount
|
||||
@@ -43,6 +40,7 @@ import pos_payment_report_user
|
||||
import pos_payment_report_date
|
||||
import pos_payment_report
|
||||
import pos_payment
|
||||
import pos_scan_product
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ class pos_make_payment(osv.osv_memory):
|
||||
<label string="Do you want to print the Receipt?" colspan="4"/>
|
||||
<separator colspan="4"/>
|
||||
<button icon="gtk-cancel" special="cancel" string="No" readonly="0"/>
|
||||
<button name="print_report" string="Print Receipt" type="object" icon="gtk-ok"/>
|
||||
<button name="print_report" string="Print Receipt" type="object" icon="gtk-print"/>
|
||||
</group>
|
||||
</form>
|
||||
"""
|
||||
@@ -143,7 +143,11 @@ class pos_make_payment(osv.osv_memory):
|
||||
if order.partner_id and order.invoice_wanted:
|
||||
return self.create_invoice(cr, uid, ids, context)
|
||||
else:
|
||||
return self.print_report(cr, uid, ids, context)
|
||||
order_obj.write(cr, uid, [record_id],{'state':'paid'})
|
||||
return self.print_report(cr, uid, ids, context)
|
||||
if order.amount_paid > 0.0:
|
||||
self.pool.get('pos.order').write(cr, uid, [record_id],{'state':'advance'})
|
||||
return self.print_report(cr, uid, ids, context)
|
||||
return {}
|
||||
|
||||
def create_invoice(self, cr, uid, ids, context):
|
||||
|
||||
@@ -8,10 +8,8 @@
|
||||
<field name="model">pos.payment.report</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="POS Details :">
|
||||
<form string="Payment Report">
|
||||
<group col="2" colspan="4">
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Close" />
|
||||
<button name="print_report" string="Print Report"
|
||||
@@ -24,7 +22,7 @@
|
||||
<record id="action_pos_payment_report" model="ir.actions.act_window">
|
||||
<field name="name">Payment Report</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">pos.details</field>
|
||||
<field name="res_model">pos.payment.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
|
||||
@@ -2,37 +2,30 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- pos.details -->
|
||||
<!-- Pos Receipt -->
|
||||
|
||||
<record id="view_pos_receipt" model="ir.ui.view">
|
||||
<field name="name">Receipt</field>
|
||||
<field name="model">pos.receipt</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Receipt :">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Close" />
|
||||
<button name="print_report" string="Print Report"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_pos_receipt" model="ir.ui.view">
|
||||
<field name="name">Receipt</field>
|
||||
<field name="model">pos.receipt</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Receipt :">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Close" />
|
||||
<button name="print_report" string="Print Report"
|
||||
colspan="1" type="object" icon="gtk-print" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Print Receipt"
|
||||
res_model="pos.receipt"
|
||||
src_model="pos.order"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="action_report_pos_receipt"/>
|
||||
|
||||
<!--record id="action_report_pos_receipt" model="ir.actions.act_window">
|
||||
<record id="action_report_pos_receipt" model="ir.actions.act_window">
|
||||
<field name="name">Receipt</field>
|
||||
<field name="res_model">pos.receipt</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record-->
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv,fields
|
||||
from tools.translate import _
|
||||
|
||||
class pos_scan_product(osv.osv_memory):
|
||||
_name = 'pos.scan.product'
|
||||
_description = 'Scan product'
|
||||
_columns = {
|
||||
'gencod': fields.char('Barcode',size=13,required= True)
|
||||
}
|
||||
def scan(self, cr, uid, ids, context):
|
||||
"""
|
||||
To get the gencod and scan product
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
@param uid: ID of the user currently logged in
|
||||
@param context: A standard dictionary
|
||||
@return : retrun gencod
|
||||
"""
|
||||
|
||||
data=self.read(cr, uid, ids)[0]
|
||||
record_id = context and context.get('active_id',False)
|
||||
result =self. pool.get('pos.order.line')._scan_product(cr, uid, data['gencod'], 1, record_id)
|
||||
return {'gencod': False}
|
||||
|
||||
pos_scan_product()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_pos_scan_product" model="ir.ui.view">
|
||||
<field name="name">Scan product</field>
|
||||
<field name="model">pos.scan.product</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Scan product">
|
||||
<group col="2" colspan="4">
|
||||
<label string="Scan Barcode" colspan="4"/>
|
||||
<field name="gencod" colspan="4" nolabel="1"/>
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Close" />
|
||||
<button name="scan" string="Add"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_pos_scan_product" model="ir.actions.act_window">
|
||||
<field name="name">Scan product</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">pos.scan.product</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,128 +0,0 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
|
||||
|
||||
def _get_default_journal_selection(self, cr, uid, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
obj = pool.get('account.journal')
|
||||
ids = obj.search(cr, uid, [('type', '=', 'cash')])
|
||||
res = obj.read(cr, uid, ids, ['id', 'name'], context)
|
||||
res = [(r['id'], r['name']) for r in res]
|
||||
res.insert(0, ('', ''))
|
||||
return res
|
||||
|
||||
default_journal_form = '''<?xml version="1.0"?>
|
||||
<form string="Select default journals">
|
||||
<field name="default_journal" />
|
||||
<newline />
|
||||
<field name="default_journal_rebate" />
|
||||
<newline />
|
||||
<field name="default_journal_gift" />
|
||||
<newline />
|
||||
</form>'''
|
||||
|
||||
default_journal_fields = {
|
||||
'default_journal': {'string': 'Default journal', 'type': 'selection',
|
||||
'selection': _get_default_journal_selection,
|
||||
},
|
||||
'default_journal_rebate': {'string': 'Default rebate journal', 'type': 'selection',
|
||||
'selection': _get_default_journal_selection,
|
||||
},
|
||||
'default_journal_gift': {'string': 'Default gift journal', 'type': 'selection',
|
||||
'selection': _get_default_journal_selection,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
class wizard_default_journal(wizard.interface):
|
||||
|
||||
def _set_default_journal(self, cr, uid, data, context):
|
||||
|
||||
def _update_default_journal_config(journal_type, journal_code, journal_descr, journal_codes, data):
|
||||
default_journal_id = data.get('form', {}).get(journal_type) or None
|
||||
dico = dict(name=journal_descr, code=journal_code, journal_id=default_journal_id)
|
||||
if default_journal_id:
|
||||
if journal_code in journal_codes:
|
||||
ids = [obj.id for obj in objs if obj.code == journal_code]
|
||||
pos_config_journal.write(cr, uid, ids, dico, context)
|
||||
else:
|
||||
pos_config_journal.create(cr, uid, dico, context)
|
||||
else:
|
||||
ids = [obj.id for obj in objs if obj.code == journal_code]
|
||||
pos_config_journal.write(cr, uid, ids, dico, context)
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
pos_config_journal = pool.get('pos.config.journal')
|
||||
ids = pos_config_journal.search(cr, uid, [])
|
||||
objs = pos_config_journal.browse(cr, uid, ids)
|
||||
journal_codes = [str(obj.code) for obj in objs]
|
||||
|
||||
_update_default_journal_config('default_journal', 'DEFAULT', 'Default journal', journal_codes, data)
|
||||
_update_default_journal_config('default_journal_rebate', 'REBATE', 'Default rebate journal', journal_codes, data)
|
||||
_update_default_journal_config('default_journal_gift', 'GIFT', 'Default gift journal', journal_codes, data)
|
||||
|
||||
return {}
|
||||
|
||||
def _get_defaults(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
pos_config_journal = pool.get('pos.config.journal')
|
||||
ids = pos_config_journal.search(cr, uid, [])
|
||||
objs = pos_config_journal.browse(cr, uid, ids)
|
||||
journal_codes = {}
|
||||
for obj in objs:
|
||||
journal_codes[obj.code] = int(obj.journal_id.id)
|
||||
|
||||
form = data['form']
|
||||
form['default_journal'] = journal_codes.get('DEFAULT') or False
|
||||
form['default_journal_rebate'] = journal_codes.get('REBATE') or False
|
||||
form['default_journal_gift'] = journal_codes.get('GIFT') or False
|
||||
|
||||
return form
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_get_defaults],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': default_journal_form,
|
||||
'fields': default_journal_fields,
|
||||
'state': [
|
||||
('end', 'Cancel'),
|
||||
('set_default_journal', 'Define default journals')
|
||||
]
|
||||
}
|
||||
},
|
||||
'set_default_journal': {
|
||||
'actions': [_set_default_journal],
|
||||
'result': {
|
||||
'type': 'state',
|
||||
'state': "end",
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
wizard_default_journal('pos.config.journal')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,72 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# Copyright (c) 2008 Sylëam Info Services. (http://www.syleam.fr) All Rights Reserved.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import pooler
|
||||
import wizard
|
||||
|
||||
form_gencod = """<?xml version="1.0"?>
|
||||
<form string="Scan product">
|
||||
<label string="Scan Barcode" colspan="4"/>
|
||||
<field name="gencod" colspan="4" nolabel="1"/>
|
||||
</form>
|
||||
"""
|
||||
|
||||
fields_gencod = {
|
||||
'gencod': {'string': 'Barcode',
|
||||
'type': 'char',
|
||||
'size': 13,
|
||||
'required': True}
|
||||
}
|
||||
|
||||
|
||||
def _scan(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
result = pool.get('pos.order.line')._scan_product(cr, uid, data['form']['gencod'], 1, data['id'])
|
||||
return {'gencod': False}
|
||||
|
||||
|
||||
def _pre_init(self, cr, uid, data, context):
|
||||
return {'gencod': False}
|
||||
|
||||
|
||||
class pos_scan_product(wizard.interface):
|
||||
states = {
|
||||
'init': {'actions' : [_pre_init],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': form_gencod,
|
||||
'fields': fields_gencod,
|
||||
'state': [('end', 'Cancel','gtk-cancel'),
|
||||
('add', 'Add', 'gtk-ok', True)],
|
||||
}
|
||||
},
|
||||
'add': {'actions' : [_scan],
|
||||
'result': {
|
||||
'type': 'state',
|
||||
'state': 'init',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pos_scan_product('pos.scan_product')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2008-10-01 22:00+0000\n"
|
||||
"Last-Translator: Tsvetin Vasilev <cecipv@yahoo.com>\n"
|
||||
"PO-Revision-Date: 2010-03-31 08:41+0000\n"
|
||||
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:51+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:40+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project
|
||||
@@ -559,7 +559,7 @@ msgstr "Невалиден XML за преглед на архитектурат
|
||||
#: model:ir.ui.menu,name:project.menu_main
|
||||
#: view:res.company:0
|
||||
msgid "Project Management"
|
||||
msgstr "Управление на проекти"
|
||||
msgstr "Проекти"
|
||||
|
||||
#. module: project
|
||||
#: field:project.project,effective_hours:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-22 21:23+0000\n"
|
||||
"Last-Translator: lem0na <nickyk@gmx.net>\n"
|
||||
"PO-Revision-Date: 2010-03-31 08:57+0000\n"
|
||||
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: purchase
|
||||
@@ -482,7 +482,7 @@ msgstr ""
|
||||
#: model:ir.module.module,shortdesc:purchase.module_meta_information
|
||||
#: model:ir.ui.menu,name:purchase.menu_purchase_root
|
||||
msgid "Purchase Management"
|
||||
msgstr ""
|
||||
msgstr "Поръчки"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,partner_ref:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-26 09:01+0000\n"
|
||||
"Last-Translator: lem0na <nickyk@gmx.net>\n"
|
||||
"PO-Revision-Date: 2010-03-31 08:48+0000\n"
|
||||
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:05+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale
|
||||
@@ -599,7 +599,7 @@ msgstr "Опаковане"
|
||||
#: model:ir.module.module,shortdesc:sale.module_meta_information
|
||||
#: model:ir.ui.menu,name:sale.menu_sale_root
|
||||
msgid "Sales Management"
|
||||
msgstr "Управление на продажби"
|
||||
msgstr "Продажби"
|
||||
|
||||
#. module: sale
|
||||
#: field:sale.order.line,order_id:0
|
||||
@@ -1174,7 +1174,7 @@ msgstr "Фактура за"
|
||||
#: model:ir.actions.act_window,name:sale.action_order_tree_new
|
||||
#: model:ir.ui.menu,name:sale.menu_action_order_tree_new
|
||||
msgid "New Quotation"
|
||||
msgstr "Ново запитване"
|
||||
msgstr "Нова оферта"
|
||||
|
||||
#. module: sale
|
||||
#: view:sale.order:0
|
||||
|
||||
@@ -85,7 +85,6 @@
|
||||
<field name="invoiced_rate" widget="progressbar"/>
|
||||
<field name="amount_untaxed" sum="Total Untaxed amount"/>
|
||||
<field name="amount_total" sum="Total amount"/>
|
||||
<field name="user_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -48,10 +48,11 @@ Thanks to the double entry management, the inventory controlling is powerful and
|
||||
"wizard/stock_inventory_set_stock_zero_view.xml",
|
||||
"wizard/stock_fill_inventory_view.xml",
|
||||
"wizard/stock_invoice_onshipping_view.xml",
|
||||
"wizard/stock_inventory_merge_view.xml",
|
||||
"wizard/stock_location_product_view.xml",
|
||||
"wizard/stock_inventory_line_split_view.xml",
|
||||
"wizard/stock_change_standard_price_view.xml",
|
||||
|
||||
"wizard/stock_picking_make_view.xml",
|
||||
"wizard/stock_traceability_view.xml",
|
||||
"stock_workflow.xml",
|
||||
"stock_incoterms.xml",
|
||||
|
||||
@@ -2096,7 +2096,6 @@ class stock_picking_move_wizard(osv.osv_memory):
|
||||
if line.picking_id:
|
||||
picking_obj.write(cr, uid, [line.picking_id.id], {'move_lines': [(1, line.id, {'picking_id': act['picking_id']})]})
|
||||
picking_obj.write(cr, uid, [act['picking_id']], {'move_lines': [(1, line.id, {'picking_id': act['picking_id']})]})
|
||||
cr.commit()
|
||||
old_picking = picking_obj.read(cr, uid, [line.picking_id.id])[0]
|
||||
if not len(old_picking['move_lines']):
|
||||
picking_obj.write(cr, uid, [old_picking['id']], {'state': 'done'})
|
||||
|
||||
@@ -585,7 +585,7 @@
|
||||
<field name="min_date" select="1"/>
|
||||
<field name="type"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<button name="%(make_picking)d"
|
||||
<button name="%(act_stock_make_picking_wizard)d"
|
||||
states="confirmed,assigned"
|
||||
string="Make Picking"
|
||||
type="action"
|
||||
@@ -752,7 +752,7 @@
|
||||
<field name="min_date" select="1"/>
|
||||
<field name="type"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<button name="%(make_picking)d"
|
||||
<button name="%(act_stock_make_picking_wizard)d"
|
||||
states="assigned"
|
||||
string="Make Picking"
|
||||
type="action"
|
||||
@@ -946,7 +946,7 @@
|
||||
<field name="backorder_id" select="2" readonly="1"/>
|
||||
<field name="origin" select="2" readonly="1"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<button name="%(make_picking)d"
|
||||
<button name="%(act_stock_make_picking_wizard)d"
|
||||
states="assigned"
|
||||
string="Make Picking"
|
||||
type="action"
|
||||
@@ -1141,7 +1141,7 @@
|
||||
<field name="invoice_state" select="2" string="Invoice Control"/>
|
||||
<field name="type"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<button name="%(make_picking)d"
|
||||
<button name="%(act_stock_make_picking_wizard)d"
|
||||
states="confirmed,assigned"
|
||||
string="Make Picking"
|
||||
type="action"
|
||||
|
||||
@@ -12,16 +12,9 @@
|
||||
model="stock.picking"
|
||||
multi="True"
|
||||
name="stock.move.split"
|
||||
string="Split move line"/>
|
||||
|
||||
string="Split move line"/>
|
||||
|
||||
<wizard
|
||||
id="make_picking"
|
||||
model="stock.picking"
|
||||
menu="False"
|
||||
keyword="client_action_multi"
|
||||
name="stock.picking.make"
|
||||
string="Make Picking"/>
|
||||
|
||||
|
||||
<wizard
|
||||
id="return_picking"
|
||||
@@ -31,20 +24,11 @@
|
||||
name="stock.return.picking"
|
||||
string="Return picking"/>
|
||||
|
||||
<wizard
|
||||
id="split_inventory_lots"
|
||||
model="stock.inventory.line"
|
||||
multi="True"
|
||||
name="stock.inventory.line.split"
|
||||
string="Split inventory lines"/>
|
||||
|
||||
<!--wizard
|
||||
string="Merge inventories"
|
||||
model="stock.inventory"
|
||||
name="inventory.merge"
|
||||
keyword="client_action_multi"
|
||||
multi="True"
|
||||
id="wizard_merge_inventory"/-->
|
||||
|
||||
<wizard
|
||||
id="split_inventory_lots"
|
||||
model="stock.inventory.line"
|
||||
multi="True"
|
||||
name="stock.inventory.line.split"
|
||||
string="Split inventory lines"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -35,6 +35,5 @@ import stock_inventory_line_split
|
||||
import stock_invoice_onshipping
|
||||
import stock_location_product
|
||||
import stock_change_standard_price
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -36,7 +36,18 @@ class stock_inventory_merge(osv.osv_memory):
|
||||
}
|
||||
|
||||
def do_merge(self, cr, uid, ids, context):
|
||||
|
||||
"""
|
||||
To merge selected Inventories.
|
||||
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
@param uid: ID of the user currently logged in
|
||||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
|
||||
@return:
|
||||
|
||||
"""
|
||||
invent_obj = self.pool.get('stock.inventory')
|
||||
invent_line_obj = self.pool.get('stock.inventory.line')
|
||||
|
||||
@@ -46,10 +57,7 @@ class stock_inventory_merge(osv.osv_memory):
|
||||
raise osv.except_osv(_('Warning'),
|
||||
_('Please select at least two inventories.'))
|
||||
|
||||
|
||||
|
||||
for inventory in invent_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
print"-------active-ids----",context['active_ids']
|
||||
if inventory.state == "done":
|
||||
raise osv.except_osv(_('Warning'),
|
||||
_('Merging is only allowed on draft inventories.'))
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="name_form" model="ir.ui.view">
|
||||
<field name="name">stock.inventory.merge.form</field>
|
||||
<field name="model">stock.inventory.merge</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Merge inventories">
|
||||
<separator colspan="4" string="Merge inventories" />
|
||||
<label string="Do you want to merge theses inventories ?"/>
|
||||
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
|
||||
<button name="do_merge" string="Yes" type="object" icon="gtk-apply"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<act_window name="Merge inventories"
|
||||
res_model="stock.inventory.merge"
|
||||
src_model="stock.inventory"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="action_view_stock_merge_inventories"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_stock_make_picking_wizard" model="ir.ui.view">
|
||||
<field name="name">Make Picking</field>
|
||||
<field name="model">stock.picking.make</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Make Picking">
|
||||
<field name="picking_ids" nolabel="1" colspan="4"
|
||||
width="600" height="300"/>
|
||||
<separator string="" colspan="4" />
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Cancel" />
|
||||
<button name="make_packing" string="Ok"
|
||||
type="object" icon="gtk-apply" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="act_stock_make_picking_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Make Picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">stock.picking.make</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,697 @@
|
||||
# German translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:01+0000\n"
|
||||
"PO-Revision-Date: 2010-03-31 21:32+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.ui.menu,name:survey.menu_survey_form
|
||||
msgid "Surveys"
|
||||
msgstr "Umfragen"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.report.xml,name:survey.survey
|
||||
msgid "Survey Analysis Report"
|
||||
msgstr "Umfrage Analyse Report"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.act_survey_page_question
|
||||
#: model:ir.ui.menu,name:survey.menu_survey_question_form1
|
||||
msgid "Survey Questions"
|
||||
msgstr "Umfrage Fragen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.response:0
|
||||
msgid "Set to draft"
|
||||
msgstr "Setze auf Entwurf"
|
||||
|
||||
#. module: survey
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Ungültiger Modellname in der Aktionsdefinition."
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.history,date:0
|
||||
msgid "Date started"
|
||||
msgstr "Startdatum"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,history:0
|
||||
msgid "History Lines"
|
||||
msgstr "Historie"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_field:wizard.send.invitation,init,mail:0
|
||||
msgid "Body"
|
||||
msgstr "Hauptteil"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_view_survey_name
|
||||
#: model:ir.ui.menu,name:survey.menu_run_survey_form
|
||||
msgid "Give Survey Response"
|
||||
msgstr "Gib Umfrage Antworten"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.act_survey_question
|
||||
msgid "All Questions"
|
||||
msgstr "Alle Fragen"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,date_open:0
|
||||
msgid "Survey Open Date"
|
||||
msgstr "Umfrage Start Datum"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_name_wiz
|
||||
msgid "survey.name.wiz"
|
||||
msgstr "survey.name.wiz"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
msgid "Users Details"
|
||||
msgstr "Benutzer Details"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_view_survey_question_message
|
||||
#: model:ir.model,name:survey.model_survey_question
|
||||
#: view:survey:0
|
||||
#: view:survey.page:0
|
||||
#: view:survey.question:0
|
||||
msgid "Survey Question"
|
||||
msgstr "Umfrage Frage"
|
||||
|
||||
#. module: survey
|
||||
#: help:survey,response_user:0
|
||||
msgid "Set to one if you require only one response per user"
|
||||
msgstr "Setze auf eins, wenn nur eine Antwort je Benutzer benötigt wird"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.page,title:0
|
||||
msgid "Page Title"
|
||||
msgstr "Seitentitel"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_history
|
||||
msgid "Survey History"
|
||||
msgstr "Umfrage Geschichte"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.response,comment:0
|
||||
#: field:survey.response.answer,comment:0
|
||||
msgid "Notes"
|
||||
msgstr "Bemerkung"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.question,tot_resp:0
|
||||
msgid "Total Response"
|
||||
msgstr "Gesamt Antworten"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.question.wiz:0
|
||||
msgid "Your Messages"
|
||||
msgstr "Ihre Mitteilung"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Abgebrochen"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.question,allow_comment:0
|
||||
msgid "Allow Comment Field"
|
||||
msgstr "Kommentarfeld erlauben"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/survey.py:0
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr "Warnung!"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,init:0
|
||||
#: wizard_field:wizard.send.invitation,init,send_mail_existing:0
|
||||
msgid "Send reminder for existing user"
|
||||
msgstr "Setze Erinnerung für bestehend Benutzer"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_new_survey_question_form
|
||||
#: model:ir.ui.menu,name:survey.menu_new_survey_question_form1
|
||||
msgid "New Survey Question"
|
||||
msgstr "Neue Umfrage Frage"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.response:0
|
||||
msgid "Skip"
|
||||
msgstr "Überspringe"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_field:wizard.send.invitation,init,partner_ids:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_field:wizard.send.invitation,init,mail_subject:0
|
||||
#: wizard_field:wizard.send.invitation,init,mail_subject_existing:0
|
||||
msgid "Subject"
|
||||
msgstr "Betrifft"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,max_response_limit:0
|
||||
msgid "Maximum Response Limit"
|
||||
msgstr "Maximale Anworten Grenze"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_field:wizard.send.invitation,init,mail_from:0
|
||||
msgid "From"
|
||||
msgstr "Von"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.response,response_type:0
|
||||
msgid "Response Type"
|
||||
msgstr "Antwort Typ"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.name.wiz,transfer:0
|
||||
msgid "Page Transfer"
|
||||
msgstr "Seite Übertragung"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.answer,question_id:0
|
||||
#: field:survey.page,question_ids:0
|
||||
#: field:survey.question,question:0
|
||||
#: field:survey.response,question_id:0
|
||||
msgid "Question"
|
||||
msgstr "Frage"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_button:wizard.send.invitation,init,send:0
|
||||
msgid "Send"
|
||||
msgstr "Absenden"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.answer,response:0
|
||||
msgid "#Response"
|
||||
msgstr "# Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.response,response_answer_ids:0
|
||||
msgid "Response Answer"
|
||||
msgstr "Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Response Summary"
|
||||
msgstr "Antwort Zusammenfassung"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,init:0
|
||||
#: wizard_field:wizard.send.invitation,init,send_mail:0
|
||||
msgid "Send mail for new user"
|
||||
msgstr "Mail an neuen Benutzer senden"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/survey.py:0
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "Fehler !"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Skipped Question"
|
||||
msgstr "Übersprungene Frage"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_button:wizard.send.invitation,send,end:0
|
||||
msgid "_Ok"
|
||||
msgstr "_OK"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey.response,response_type:0
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.ui.menu,name:survey.menu_survey_config
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_question_wiz
|
||||
msgid "survey.question.wiz"
|
||||
msgstr "survey.question.wiz"
|
||||
|
||||
#. module: survey
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Fehlerhafter XML Code für diese Ansicht!"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_response_answer
|
||||
#: view:survey.response.answer:0
|
||||
msgid "Survey Response Answer"
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Page :-"
|
||||
msgstr "Seite :-"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,response_user:0
|
||||
msgid "Maximum Response per User"
|
||||
msgstr "Maximale Antworten je Benutzer"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Total Started Survey :-"
|
||||
msgstr "Gesamt gestartete Umfrage :-"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.response:0
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.response,date_modify:0
|
||||
msgid "Modify Date"
|
||||
msgstr "Datum ändern"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Answered Question"
|
||||
msgstr "Beantwortete Frage"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/survey.py:0
|
||||
#, python-format
|
||||
msgid "You can not give response for this survey more than %s times"
|
||||
msgstr "Sie können diese Umfrage nicht öfter als %s Mal beantworten"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey.response,response_type:0
|
||||
msgid "Manually"
|
||||
msgstr "Manuell"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_survey_form1
|
||||
msgid "All Surveys"
|
||||
msgstr "Alle Umfragen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: field:survey,users:0
|
||||
msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,init:0
|
||||
msgid "Message"
|
||||
msgstr "Nachricht"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.name.wiz,page_no:0
|
||||
msgid "Page Number"
|
||||
msgstr "Seitennummer"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_field:wizard.send.invitation,send,note:0
|
||||
msgid "Log"
|
||||
msgstr "Protokoll"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_survey_question_form
|
||||
msgid "All Survey Questions"
|
||||
msgstr "Alle Umfrage Fragen"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,date_close:0
|
||||
msgid "Survey Close Date"
|
||||
msgstr "Umfrage Enddatum"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.name.wiz:0
|
||||
msgid "Start"
|
||||
msgstr "Start"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey,state:0
|
||||
#: selection:survey.response,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Entwurf"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey,state:0
|
||||
msgid "Closed"
|
||||
msgstr "Abgeschlossen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: field:survey.answer,answer:0
|
||||
#: view:survey.page:0
|
||||
#: view:survey.question:0
|
||||
#: field:survey.question,answer_choice_ids:0
|
||||
#: field:survey.response.answer,answer_id:0
|
||||
msgid "Answer"
|
||||
msgstr "Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_survey_page_form
|
||||
msgid "All Survey Pages"
|
||||
msgstr "Alle Umfrage Seiten"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.name.wiz,store_ans:0
|
||||
msgid "Store Answer"
|
||||
msgstr "Speichere Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,state:0
|
||||
#: field:survey.response,state:0
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.module.module,shortdesc:survey.module_meta_information
|
||||
msgid "Survey Module"
|
||||
msgstr "Umfrage Modul"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.module.module,description:survey.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This module is used for surveing. It depends on the answers or reviews "
|
||||
"of some questions by different users.\n"
|
||||
" A survey may have multiple pages. Each page may contain multiple "
|
||||
"questions and each question may have multiple answers.\n"
|
||||
" Different users may give different answers of question and according to "
|
||||
"that survey is done. \n"
|
||||
" Partners are also sent mails with user name and password for the "
|
||||
"invitation of the survey\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.name.wiz:0
|
||||
msgid "Survey Details"
|
||||
msgstr "Umfrage Details"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.question,is_require_answer:0
|
||||
msgid "Required Answer"
|
||||
msgstr "zwingend notwendige Anwort"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.history,user_id:0
|
||||
#: field:survey.response,response_id:0
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#. module: survey
|
||||
#: field:res.users,survey_id:0
|
||||
msgid "Groups"
|
||||
msgstr "Gruppen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.page:0
|
||||
#: view:survey.question:0
|
||||
#: field:survey.question,response_ids:0
|
||||
#: view:survey.response:0
|
||||
#: field:survey.response.answer,response_id:0
|
||||
msgid "Response"
|
||||
msgstr "Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_new_survey_form1
|
||||
#: model:ir.ui.menu,name:survey.menu_new_survey_form
|
||||
msgid "New Survey"
|
||||
msgstr "Neue Umfrage"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.ui.menu,name:survey.main_menu_survey
|
||||
msgid "Survey Management"
|
||||
msgstr "Umfrage Management"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey.response,state:0
|
||||
msgid "Skiped"
|
||||
msgstr "Übersprungen"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_answer
|
||||
#: view:survey.answer:0
|
||||
msgid "Survey Answer"
|
||||
msgstr "Umfrage Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/wizard/wizard_survey.py:0
|
||||
#, python-format
|
||||
msgid "Attention!"
|
||||
msgstr "Achtung!"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey
|
||||
#: view:res.users:0
|
||||
#: view:survey:0
|
||||
#: field:survey.history,survey_id:0
|
||||
#: view:survey.name.wiz:0
|
||||
#: field:survey.name.wiz,survey_id:0
|
||||
#: field:survey.page,survey_id:0
|
||||
#: field:survey.question,survey:0
|
||||
msgid "Survey"
|
||||
msgstr "Umfrage"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Total Completed Survey :-"
|
||||
msgstr "Gesamt abgeschlossene Umfrage :-"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
msgid "History"
|
||||
msgstr "Verlauf"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.answer:0
|
||||
#: view:survey.page:0
|
||||
#: view:survey.question:0
|
||||
msgid "Seq"
|
||||
msgstr "Seq"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,tot_comp_survey:0
|
||||
msgid "Total Completed Survey"
|
||||
msgstr "Gesamt abgeschlossene Umfrage"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Response Percentage"
|
||||
msgstr "Antwort Prozente"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.question.wiz,name:0
|
||||
msgid "Number"
|
||||
msgstr "Anzahl"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Survey Title :-"
|
||||
msgstr "Umfrage Titel"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.response:0
|
||||
msgid "Done"
|
||||
msgstr "Fertig"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/survey.py:0
|
||||
#, python-format
|
||||
msgid "'\" + que_rec[0]['question'] + \"' This question requires an answer."
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.name.wiz:0
|
||||
#: wizard_button:wizard.send.invitation,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: selection:survey,state:0
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,tot_start_survey:0
|
||||
msgid "Total Started Survey"
|
||||
msgstr "Gesamt gestartete Umfrage"
|
||||
|
||||
#. module: survey
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Der Objekt Name muss mit einem x_ starten und darf keine Sonderzeichen "
|
||||
"beinhalten"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.model,name:survey.model_survey_response
|
||||
#: view:survey.response:0
|
||||
msgid "Survey Response"
|
||||
msgstr "Umfrage Antwort"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.answer,average:0
|
||||
msgid "#Avg"
|
||||
msgstr "# Mittel"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,responsible_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Verantwortlich"
|
||||
|
||||
#. module: survey
|
||||
#: selection:survey.response,state:0
|
||||
msgid "Answered"
|
||||
msgstr "Beantwortet"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
msgid "Other"
|
||||
msgstr "Andere"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.wizard,name:survey.wizard_send_invitation
|
||||
#: wizard_view:wizard.send.invitation,init:0
|
||||
msgid "Send Invitation"
|
||||
msgstr "Einladung verschicken"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,title:0
|
||||
msgid "Survey Title"
|
||||
msgstr "Umfragetitel"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: field:survey,note:0
|
||||
#: field:survey.name.wiz,note:0
|
||||
#: view:survey.page:0
|
||||
#: field:survey.page,note:0
|
||||
#: view:survey.response:0
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.name.wiz:0
|
||||
msgid "Select Survey"
|
||||
msgstr "Auswahl Umfrage"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.action_new_survey_page_form
|
||||
#: model:ir.ui.menu,name:survey.menu_new_survey_page_form1
|
||||
msgid "New Survey Page"
|
||||
msgstr "Neue Umfrage Seite"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey:0
|
||||
#: view:survey.page:0
|
||||
#: field:survey.question,page_id:0
|
||||
msgid "Survey Page"
|
||||
msgstr "Umfrage Seite"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.act_survey_answer
|
||||
msgid "Survey Answers"
|
||||
msgstr "Umfrage Antworten"
|
||||
|
||||
#. module: survey
|
||||
#: view:survey.page:0
|
||||
msgid "#Questions"
|
||||
msgstr "# Fragen"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Que:"
|
||||
msgstr ""
|
||||
|
||||
#. module: survey
|
||||
#: field:survey,page_ids:0
|
||||
msgid "Page"
|
||||
msgstr "Seite"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,send:0
|
||||
msgid "User creation"
|
||||
msgstr "Benutzer anlegen"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.answer,sequence:0
|
||||
#: field:survey.page,sequence:0
|
||||
#: field:survey.question,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Sequenz"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,send:0
|
||||
msgid "Results :"
|
||||
msgstr "Ergebnisse:"
|
||||
|
||||
#. module: survey
|
||||
#: code:addons/survey/wizard/wizard_survey.py:0
|
||||
#, python-format
|
||||
msgid "%sSurvey is not in open state"
|
||||
msgstr "%s Umfrage ist nicht im Status Offen"
|
||||
|
||||
#. module: survey
|
||||
#: wizard_view:wizard.send.invitation,init:0
|
||||
msgid "Select Partner"
|
||||
msgstr "Wähle Partner"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.response,date_create:0
|
||||
msgid "Create Date"
|
||||
msgstr "Erstellungsdatum"
|
||||
|
||||
#. module: survey
|
||||
#: model:ir.actions.act_window,name:survey.act_survey_pages
|
||||
#: model:ir.model,name:survey.model_survey_page
|
||||
#: model:ir.ui.menu,name:survey.menu_survey_page_form1
|
||||
msgid "Survey Pages"
|
||||
msgstr "Umfrage Seiten"
|
||||
|
||||
#. module: survey
|
||||
#: rml:survey_analysis_report:0
|
||||
msgid "Response Count"
|
||||
msgstr "Umfrage Anzahl"
|
||||
|
||||
#. module: survey
|
||||
#: field:survey.name.wiz,page:0
|
||||
msgid "Page Position"
|
||||
msgstr "Seitenposition"
|
||||
Reference in New Issue
Block a user