uco (OpenERP)
2010-02-03 10:46:05 +05:30
30 changed files with 1751 additions and 212 deletions
+3 -3
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-24 12:50+0000\n"
"PO-Revision-Date: 2010-01-06 01:42+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-02 06:30+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish <pl@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-01-22 04:42+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_anglo_saxon
+9 -9
View File
@@ -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: 2009-11-09 16:28+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-02 17:25+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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: 2009-12-16 05:20+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
@@ -58,7 +58,7 @@ msgstr "Балансовый отчет"
#. module: account_reporting
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: account_reporting
#: selection:account.report.bs,font_style:0
@@ -78,7 +78,7 @@ msgstr "Распечатать балансовый отчет"
#. module: account_reporting
#: help:account.account.balancesheet.report,init,periods:0
msgid "All periods if empty"
msgstr ""
msgstr "Если не заполнены все периоды"
#. module: account_reporting
#: field:account.report.bs,color_font:0
@@ -95,7 +95,7 @@ msgstr "Отчет с объектами, счетами и потомками
msgid ""
"Financial and accounting reporting\n"
" Balance Sheet Report"
msgstr ""
msgstr "Финансовые и аналитические отчеты"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
@@ -126,7 +126,7 @@ msgstr "Отчетность по счету"
#. module: account_reporting
#: model:ir.ui.menu,name:account_reporting.bs_report_action_form
msgid "Balance Sheet Report Form"
msgstr ""
msgstr "Отчет главной книги (Форма)"
#. module: account_reporting
#: view:account.report.bs:0
@@ -166,7 +166,7 @@ msgstr "Цвета RML"
#. module: account_reporting
#: model:ir.module.module,shortdesc:account_reporting.module_meta_information
msgid "Reporting of Balancesheet for accounting"
msgstr ""
msgstr "Отчет главной книги по счетам"
#. module: account_reporting
#: field:account.report.bs,code:0
@@ -207,7 +207,7 @@ msgstr "Учётные записи"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,periods:0
msgid "Periods"
msgstr ""
msgstr "Периоды"
#. module: account_reporting
#: field:account.report.bs,color_back:0
+9 -9
View File
@@ -197,6 +197,8 @@ class CalDAV(object):
self.ical_set(cal_data.name.lower(), vals, 'value')
continue
if cal_data.name.lower() in self.__attribute__:
if cal_data.params.get('X-VOBJ-ORIGINAL-TZID'):
self.ical_set('vtimezone', cal_data.params.get('X-VOBJ-ORIGINAL-TZID'), 'value')
self.ical_set(cal_data.name.lower(), cal_data.value, 'value')
vals = map_data(cr, uid, self)
return vals
@@ -258,7 +260,7 @@ class CalDAV(object):
dtfield = vevent.add(field)
dtfield.value = parser.parse(data[map_field])
if tzval:
dtfield.params['TZID'] = [tzval]
dtfield.params['TZID'] = [tzval.title()]
elif map_type == "timedelta":
vevent.add(field).value = timedelta(hours=data[map_field])
elif map_type == "many2one":
@@ -315,9 +317,6 @@ class CalDAV(object):
for child in parsedCal.getChildren():
if child.name.lower() in ('vevent', 'vtodo'):
vals = self.parse_ics(cr, uid, child, context=context)
elif child.name.lower() == 'vtimezone':
tz_obj = self.pool.get('basic.calendar.timezone')
tz_obj.import_cal(cr, uid, child, context=context)
else:
vals = {}
continue
@@ -623,7 +622,7 @@ class Timezone(CalDAV, osv.osv_memory):
}
def get_name_offset(self, cr, uid, tzid, context={}):
mytz = pytz.timezone(tzid)
mytz = pytz.timezone(tzid.title())
mydt = datetime.now(tz=mytz)
offset = mydt.utcoffset()
val = offset.days * 24 + float(offset.seconds) / 3600
@@ -636,7 +635,7 @@ class Timezone(CalDAV, osv.osv_memory):
ctx = context.copy()
ctx.update({'model': model})
cal_tz = ical.add('vtimezone')
cal_tz.add('TZID').value = tzid
cal_tz.add('TZID').value = tzid.title()
tz_std = cal_tz.add('STANDARD')
tzname, offset = self.get_name_offset(cr, uid, tzid)
tz_std.add("TZOFFSETFROM").value = offset
@@ -776,14 +775,15 @@ class Attendee(CalDAV, osv.osv_memory):
cn_val = ''
for a_key, a_val in self.__attribute__.items():
if attendee[a_val['field']] and a_val['field'] != 'cn':
if a_val['type'] == 'text':
if a_val['type'] in ('text', 'char', 'selection'):
attendee_add.params[a_key] = [str(attendee[a_val['field']])]
elif a_val['type'] == 'boolean':
attendee_add.params[a_key] = [str(attendee[a_val['field']])]
if a_val['field'] == 'cn' and attendee[a_val['field']]:
cn_val = [str(attendee[a_val['field']])]
if cn_val:
attendee_add.params['CN'] = cn_val
if cn_val:
attendee_add.params['CN'] = cn_val
attendee_add.value = 'MAILTO:' + attendee['email']
return vevent
Attendee()
+25 -24
View File
@@ -7,19 +7,19 @@ 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-11-17 08:55+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-02 17:45+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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: 2009-12-16 05:26+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality
#: field:module.quality.check,final_score:0
msgid "Final Score (%)"
msgstr ""
msgstr "% выполнения"
#. module: base_module_quality
#: constraint:ir.model:0
@@ -32,12 +32,12 @@ msgstr ""
#. module: base_module_quality
#: model:ir.module.module,shortdesc:base_module_quality.module_meta_information
msgid "Base module quality"
msgstr ""
msgstr "Базисный модуль контроля качества"
#. module: base_module_quality
#: field:module.quality.check,name:0
msgid "Rated Module"
msgstr ""
msgstr "Оценка модуля"
#. module: base_module_quality
#: view:module.quality.detail:0
@@ -47,17 +47,17 @@ msgstr "Подробности"
#. module: base_module_quality
#: field:module.quality.detail,note:0
msgid "Note"
msgstr ""
msgstr "Заметка"
#. module: base_module_quality
#: field:module.quality.detail,state:0
msgid "State"
msgstr ""
msgstr "Область/штат"
#. module: base_module_quality
#: field:module.quality.detail,detail:0
msgid "Details"
msgstr ""
msgstr "Подробно"
#. module: base_module_quality
#: field:module.quality.detail,ponderation:0
@@ -75,12 +75,12 @@ msgstr ""
#: view:module.quality.check:0
#: field:module.quality.check,check_detail_ids:0
msgid "Tests"
msgstr ""
msgstr "Тесты"
#. module: base_module_quality
#: selection:module.quality.detail,state:0
msgid "Skipped"
msgstr ""
msgstr "Пропущено"
#. module: base_module_quality
#: help:module.quality.detail,state:0
@@ -88,6 +88,7 @@ msgid ""
"The test will be completed only if the module is installed or if the test "
"may be processed on uninstalled module."
msgstr ""
"Тест проводится только для установленных или помеченных для деинсталяции."
#. module: base_module_quality
#: constraint:ir.ui.view:0
@@ -102,27 +103,27 @@ msgstr ""
#. module: base_module_quality
#: field:module.quality.detail,name:0
msgid "Name"
msgstr ""
msgstr "Имя"
#. module: base_module_quality
#: wizard_field:quality_detail_save,init,module_file:0
msgid "Save report"
msgstr ""
msgstr "Сохранить отчет"
#. module: base_module_quality
#: wizard_field:quality_detail_save,init,name:0
msgid "File name"
msgstr ""
msgstr "Имя файла"
#. module: base_module_quality
#: field:module.quality.detail,score:0
msgid "Score (%)"
msgstr ""
msgstr "% выполнения"
#. module: base_module_quality
#: help:quality_detail_save,init,name:0
msgid "Save report as .html format"
msgstr ""
msgstr "Сохранить отчет в формате HTML"
#. module: base_module_quality
#: view:module.quality.detail:0
@@ -133,22 +134,22 @@ msgstr "Аннотация"
#. module: base_module_quality
#: model:ir.actions.wizard,name:base_module_quality.quality_detail_save
msgid "Report Save"
msgstr ""
msgstr "Сохранить отчет"
#. module: base_module_quality
#: wizard_view:quality_detail_save,init:0
msgid "Standard entries"
msgstr ""
msgstr "Стандартные точки входа"
#. module: base_module_quality
#: view:module.quality.detail:0
msgid "Save Report"
msgstr ""
msgstr "Сохранить отчет"
#. module: base_module_quality
#: model:ir.actions.wizard,name:base_module_quality.create_quality_check_id
msgid "Quality Check"
msgstr ""
msgstr "Проверка качества"
#. module: base_module_quality
#: model:ir.model,name:base_module_quality.model_module_quality_detail
@@ -158,23 +159,23 @@ msgstr ""
#. module: base_module_quality
#: selection:module.quality.detail,state:0
msgid "Done"
msgstr ""
msgstr "Завершено"
#. module: base_module_quality
#: view:module.quality.check:0
#: view:module.quality.detail:0
msgid "Result"
msgstr ""
msgstr "Результат"
#. module: base_module_quality
#: wizard_button:quality_detail_save,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Отмена"
#. module: base_module_quality
#: field:module.quality.detail,message:0
msgid "Message"
msgstr ""
msgstr "Сообщение"
#. module: base_module_quality
#: field:module.quality.detail,quality_check_id:0
+1 -1
View File
@@ -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-02-02 04:48+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_report_creator
+10 -4
View File
@@ -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: 2009-11-17 08:51+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-02 17:28+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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: 2009-12-16 05:10+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_setup
@@ -134,7 +134,7 @@ msgstr "Улица (2-я строка)"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report Information"
msgstr ""
msgstr "Информация об отчетах"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,phone:0
@@ -194,6 +194,9 @@ msgid ""
"We suggest you to write legal sentences here:\n"
"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
msgstr ""
"Это предложение появится внизу ваших отчетов.\n"
"Рекомендуем поместить здесь юридическую информацию:\n"
"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
#. module: base_setup
#: wizard_view:base_setup.base_setup,update:0
@@ -219,6 +222,9 @@ msgid ""
"We suggest you to put a slogan here:\n"
"\"Open Source Business Solutions\"."
msgstr ""
"Это предложение появится в правом верхнем углу ваших отчетов.\n"
"Рекомендуем поместить здесь слоган:\n"
"\"Решения для бизнеса с открытым исходным кодом\"."
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_header1:0
+8 -6
View File
@@ -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: 2009-11-17 08:49+0000\n"
"Last-Translator: Sergei Kostigoff <sergei.kostigoff@gmail.com>\n"
"PO-Revision-Date: 2010-02-02 17:36+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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: 2009-12-16 05:09+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_vat
@@ -21,18 +21,20 @@ msgstr ""
msgid ""
"Enable the VAT Number for the partner. Check the validity of that VAT Number."
msgstr ""
"Разрешить использование кода налога для партнера. Проверьте правильность "
"кода налога."
#. module: base_vat
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра архитектуры!"
msgstr "Некорректный формат XML структуры для просмотра."
#. module: base_vat
#: field:res.partner,vat_subjected:0
msgid "VAT Legal Statement"
msgstr "Официальное положение по НДС"
msgstr "Действующий код налога"
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "VAT"
msgstr "НДС"
msgstr "Код налога"
+4 -4
View File
@@ -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: 2009-11-17 07:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-02 09:39+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\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: 2009-12-16 05:10+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_crm_configuration
@@ -86,7 +86,7 @@ msgstr "Richieste di Lavoro del Mese per Personale Assunto"
#. module: board_crm_configuration
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: board_crm_configuration
#: view:board.board:0
+1 -1
View File
@@ -71,7 +71,7 @@
<field name="res_model">project.message</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="project.view_project_editable_message_tree"/>
<field name="view_id" ref="project.view_project_message_tree"/>
</record>
<record id="action_view_project_member_tree" model="ir.actions.act_window">
+86 -17
View File
@@ -31,6 +31,7 @@ import pooler
import pytz
import re
import time
import tools
months = {
1:"January", 2:"February", 3:"March", 4:"April", \
@@ -65,6 +66,54 @@ def _links_get(self, cr, uid, context={}):
res = obj.read(cr, uid, ids, ['object', 'name'], context)
return [(r['object'], r['name']) for r in res]
html_invitation = """
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>%(name)s</title>
</head>
<div>
<table cellspacing="0" cellpadding="0" border=3D "1" summary=3D"">
<tr align="center">
<td bgcolor="DFDFDF">
<h3>%(name)s</h3>
</td>
</tr>
<tr>
<td>
<table cellpadding="8" cellspacing="0" border=3D "0" summary=3D
"Eventdetails" bgcolor="f6f6f6">
<tr>
<td>
<div><b><i>Start Date</i></b></div>
</td>
<td>%(start_date)s</td>
<td>
<div><b><i>End Date</i></b></div>
</td>
<td>%(end_date)s</td>
</tr>
<tr>
<td><b><i>Description</i></b></td>
<td colspan="3">%(description)s</td>
</tr>
<tr>
<td>
<div><b><i>Location</i></b></div>
</td>
<td colspan="3">%(location)s</td>
</tr>
<tr>
<td>
<div><b><i>Event Attendees</i></b></div>
</td>
<td colspan="3">
<div>
<div>%(attendees)s</div>
</div>
</td>
</tr>
</table>"""
class calendar_attendee(osv.osv):
_name = 'calendar.attendee'
_description = 'Attendee information'
@@ -82,8 +131,11 @@ class calendar_attendee(osv.osv):
result = {}
def get_delegate_data(user):
email = user.address_id and user.address_id.email or ''
return self._get_address(user.name, email)
if not user.address_id.email:
raise osv.except_osv(_('Error!'), \
("User does not have an email Address"))
email = (user.address_id and ('MAILTO:' + user.address_id.email)) or ''
return email
for attdata in self.browse(cr, uid, ids, context=context):
id = attdata.id
@@ -112,12 +164,11 @@ class calendar_attendee(osv.osv):
fromdata = map(get_delegate_data, attdata.del_from_user_ids)
result[id][name] = ', '.join(fromdata)
if name == 'event_date':
# TO fix date for project task
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date'])[0]
result[id][name] = None#obj['date']
result[id][name] = obj.get('date')
else:
result[id][name] = None
if name == 'event_end_date':
@@ -125,7 +176,7 @@ class calendar_attendee(osv.osv):
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date_deadline'])[0]
result[id][name] = obj['date_deadline']
result[id][name] = obj.get('date_deadline')
else:
result[id][name] = None
if name == 'sent_by_uid':
@@ -133,9 +184,13 @@ class calendar_attendee(osv.osv):
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['user_id'])[0]
result[id][name] = obj['user_id']
result[id][name] = obj.get('user_id')
else:
result[id][name] = uid
if name == 'language':
user_obj = self.pool.get('res.users')
lang = user_obj.read(cr, uid, uid, ['context_lang']) ['context_lang']
result[id][name] = lang.replace('_', '-')
return result
def _links_get(self, cr, uid, context={}):
@@ -182,15 +237,14 @@ request was delegated to"),
'del_from_user_ids': fields.many2many('res.users', 'att_del_from_user_rel', \
'attendee_id', 'user_id', 'Users'),
'sent_by': fields.function(_compute_data, method=True, string='Sent By', type="char", multi='sent_by', store=True, size=124, help="Specify the user that is acting on behalf of the calendar user"),
'sent_by_uid': fields.many2one('res.users', 'Sent by User'),
'sent_by_uid': fields.function(_compute_data, method=True, string='Sent By User', type="many2one", relation="res.users", multi='sent_by_uid'),
'cn': fields.function(_compute_data, method=True, string='Common name', type="char", size=124, multi='cn', store=True),
'dir': fields.char('URI Reference', size=124, help="Reference to the URI that points to the directory information corresponding to the attendee."),
'language': fields.selection(_lang_get, 'Language',
help="To specify the language for text values in a property or property parameter."),
'language': fields.function(_compute_data, method=True, string='Language', type="selection", selection=_lang_get, multi='language', store=True, help="To specify the language for text values in a property or property parameter."),
'user_id': fields.many2one('res.users', 'User'),
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
'partner_id':fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
'email': fields.char('Email', size=124),
'email': fields.char('Email', size=124, required=True),
'event_date': fields.function(_compute_data, method=True, string='Event Date', type="datetime", multi='event_date'),
'event_end_date': fields.function(_compute_data, method=True, string='Event End Date', type="datetime", multi='event_end_date'),
'ref': fields.reference('Document Ref', selection=_links_get, size=128),
@@ -426,7 +480,7 @@ class calendar_event(osv.osv):
__attribute__ = {}
def _tz_get(self,cr,uid, context={}):
return [(x, x) for x in pytz.all_timezones]
return [(x.lower(), x) for x in pytz.all_timezones]
def onchange_rrule_type(self, cr, uid, ids, rtype, *args, **argv):
if rtype == 'none' or not rtype:
@@ -501,9 +555,7 @@ rule or repeating pattern for anexception to a recurrence set"),
event_data = self.read(cr, uid, ids)
event_obj = self.pool.get('basic.calendar.event')
ical = event_obj.export_cal(cr, uid, event_data, context={'model': self._name})
cal_val = ical.serialize()
cal_val = cal_val.replace('"', '').strip()
return cal_val
return ical.serialize()
def import_cal(self, cr, uid, data, data_id=None, context={}):
event_obj = self.pool.get('basic.calendar.event')
@@ -1001,9 +1053,7 @@ class res_users(osv.osv):
status = 'busy'
res.update({user_id:status})
#TOCHECK: Delegrated Event
#cr.execute("SELECT user_id,'busy' FROM att_del_to_user_rel where user_id = ANY(%s)", (ids,))
#res.update(cr.dictfetchall())
#TOCHECK: Delegrated Event
for user_id in ids:
if user_id not in res:
res[user_id] = 'free'
@@ -1063,6 +1113,25 @@ class invite_attendee_wizard(osv.osv_memory):
vals.update({'email': datas['email']})
att_id = att_obj.create(cr, uid, vals)
obj.write(cr, uid, res_obj.id, {'attendee_ids': [(4, att_id)]})
sub = '[OpenERP Invitation] %s' % (res_obj.name)
body_vals = {'name': res_obj.name,
'start_date': res_obj.date,
'end_date': res_obj.date_deadline or None,
'description': res_obj.description,
'location': res_obj.location or '-',
'attendees': '-' #Todo
}
body = html_invitation % body_vals
mail_to = [datas['email']]
tools.email_send(
res_obj.user_id.name,
mail_to,
sub,
body,
subtype='html'
)
elif type == 'partner':
add_obj = self.pool.get('res.partner.address')
for contact in add_obj.browse(cr, uid, datas['contact_ids']):
+6 -29
View File
@@ -65,6 +65,8 @@
<field name="user_id"
on_change="onchange_user_id(user_id)" readonly="1" />
<field name="email" select="1" readonly="1" />
<field name="partner_id" select="1" readonly="1" />
<field name="partner_address_id" select="1" readonly="1" />
<newline />
<field name="role" select="1" readonly="1" string="Role" />
<field name="cutype" select="1" readonly="1" string="Invitation type" />
@@ -114,7 +116,7 @@
</field>
</record>
<record id="caldav_attendee_tree_view" model="ir.ui.view">
<record id="caldav_attendee_tree_view" model="ir.ui.view">
<field name="name">calendar.attendee.tree</field>
<field name="model">calendar.attendee</field>
<field name="type">tree</field>
@@ -126,32 +128,9 @@
<field name="state" />
</tree>
</field>
</record>
</record>
<record id="action_view_attendee_form" model="ir.actions.act_window">
<field name="name">My Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="caldav_attendee_tree_view" />
<field name="domain">[('user_id', '=', uid)]</field>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<record id="action_invitation_tree_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence" />
<field name="view_mode">tree</field>
<field name="view_id" ref="caldav_attendee_tree_view" />
<field name="act_window_id" ref="action_view_attendee_form" />
</record>
<record id="action_invitation_form_view1" model="ir.actions.act_window.view">
<field eval="2" name="sequence" />
<field name="view_mode">form</field>
<field name="view_id" ref="caldav_attendee_form_view" />
<field name="act_window_id" ref="action_view_attendee_form" />
</record>
<record id="res_alarm_form_view" model="ir.ui.view">
<field name="name">res.alarm.form</field>
@@ -251,7 +230,7 @@
</field>
</record>
<record id="action_calendar_custom_rrule_wizard" model="ir.actions.act_window">
<record id="action_calendar_custom_rrule_wizard" model="ir.actions.act_window">
<field name="name">Custom Rule</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.custom.rrule</field>
@@ -260,9 +239,7 @@
<field name="target">new</field>
</record>
<menuitem id="menu_attendee_invitations"
name="My Invitations" parent="base_calendar.menu_calendar_configuration"
sequence="10" action="action_view_attendee_form" />
<!-- Available alarms-->
+2 -1
View File
@@ -31,7 +31,7 @@
<!-- Event Attribute mapping for Calendar-->
<record model="basic.calendar" id="base_calendar.basic_calendar1">
<field name="name">meeting</field>
<field name="name">Meetings</field>
</record>
<record model="basic.calendar.lines" id="caldav.calendar_lines_event">
@@ -102,6 +102,7 @@
<field name="type_id" ref="caldav.calendar_lines_event" />
<field name="field_id" search="[('name','=','priority'),('model_id.model','=','crm.meeting')]" />
<field name="fn">field</field>
<field name="mapping">{'1': '1', '2': '2', '3': '2','4': '2', '5': '3', '6': '4', '7': '4', '8': '4', '9': '5'}</field>
</record>
+16
View File
@@ -119,6 +119,22 @@
<menuitem name="Meetings" id="menu_meeting_sale" parent="base.menu_base_partner" sequence="3"/>
<menuitem name="Meetings" id="menu_crm_case_categ_meet" action="crm_case_categ_meet" parent="menu_meeting_sale" sequence="1"/>
<record id="action_view_attendee_form" model="ir.actions.act_window">
<field name="name">Meeting Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="caldav.caldav_attendee_tree_view" />
<field name="domain">[('ref','like','crm.meeting,')]</field>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<menuitem id="menu_attendee_invitations"
name="Meeting Invitations" parent="menu_meeting_sale"
sequence="10" action="action_view_attendee_form" />
<record model="ir.actions.act_window" id="crm_case_category_act_meetall3">
<field name="name">Next Meetings</field>
<field name="res_model">crm.meeting</field>
+1 -1
View File
@@ -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-02-02 04:48+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
+19 -19
View File
@@ -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: 2010-01-05 05:59+0000\n"
"PO-Revision-Date: 2010-01-22 14:44+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"PO-Revision-Date: 2010-02-02 16:15+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\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-01-23 04:45+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -678,7 +678,7 @@ msgstr " Oggi "
#: wizard_view:crm.job.reschedule_phone_call,init:0
#: wizard_view:crm.opportunity.reschedule_phone_call,init:0
msgid "Phone Call Description"
msgstr ""
msgstr "Descrizione Chiamata Telefonica"
#. module: crm
#: view:crm.case.categ:0
@@ -1397,7 +1397,7 @@ msgstr "Casi aperti"
#: field:report.crm.case.section.categ2,stage_id:0
#: field:report.crm.case.section.stage,stage_id:0
msgid "Stage"
msgstr ""
msgstr "Scenario"
#. module: crm
#: constraint:ir.ui.view:0
@@ -1428,7 +1428,7 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_case_stage_act
#: model:ir.ui.menu,name:crm.menu_crm_case_stage_act
msgid "Stages"
msgstr ""
msgstr "Tirocini"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0
@@ -1857,7 +1857,7 @@ msgstr "Permetti di cancellare i casi non in bozza"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor7
msgid "Closed Lost"
msgstr ""
msgstr "Perdita chiusa"
#. module: crm
#: field:crm.menu.config_wizard,bugs:0
@@ -1886,7 +1886,7 @@ msgstr "Alta"
#. module: crm
#: model:process.node,note:crm.process_node_partner0
msgid "Convert to prospect to business partner"
msgstr ""
msgstr "Converti candidato in business partner"
#. module: crm
#: view:crm.claim:0
@@ -2065,7 +2065,7 @@ msgstr "Minuti"
#: field:report.crm.case.section.categ2,amount_revenue:0
#: field:report.crm.case.section.stage,amount_revenue:0
msgid "Est.Revenue"
msgstr ""
msgstr "Entrate stimate"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job1
@@ -2278,7 +2278,7 @@ msgstr "Luglio"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor1
msgid "Prospecting"
msgstr ""
msgstr "Candidatura"
#. module: crm
#: field:crm.case,partner_name2:0
@@ -2362,7 +2362,7 @@ msgstr "Mese"
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0_act_leads
#: model:process.node,name:crm.process_node_leads0
msgid "Leads"
msgstr ""
msgstr "Iniziative"
#. module: crm
#: wizard_button:crm.new.send.mail,init,send:0
@@ -2432,7 +2432,7 @@ msgstr "Note"
#: field:report.crm.case.section.categ2,delay_close:0
#: field:report.crm.case.section.stage,delay_close:0
msgid "Delay Close"
msgstr ""
msgstr "Ritardo Chiusura"
#. module: crm
#: selection:crm.case,priority:0
@@ -2595,7 +2595,7 @@ msgstr ">"
#. module: crm
#: view:crm.job:0
msgid "Candidate Phone"
msgstr ""
msgstr "Telefono Candidato"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_send_mail
@@ -2759,7 +2759,7 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already existing with the same name."
msgstr ""
msgstr "Esiste già un Partner con lo stesso nome"
#. module: crm
#: model:ir.model,name:crm.model_crm_phonecall
@@ -2899,7 +2899,7 @@ msgstr ""
#. module: crm
#: view:crm.job:0
msgid "Open Jobs"
msgstr ""
msgstr "Lavori Aperti"
#. module: crm
#: selection:crm.email.add.cc,name:0
@@ -3071,7 +3071,7 @@ msgstr "Modulo Fondi"
#. module: crm
#: view:crm.meeting:0
msgid "Search Meetings"
msgstr ""
msgstr "Ricerca Incontri"
#. module: crm
#: selection:crm.lead.opportunity_set,create_partner,action:0
@@ -3174,7 +3174,7 @@ msgstr "Annullato"
#. module: crm
#: view:crm.job:0
msgid "Applied Job"
msgstr ""
msgstr "Lavoro Svolto"
#. module: crm
#: help:crm.meeting,exrule:0
@@ -4008,7 +4008,7 @@ msgstr "Sequenza"
#: wizard_view:caldav.crm.import,init:0
#: wizard_field:caldav.crm.import,init,file_path:0
msgid "Select ICS file"
msgstr ""
msgstr "Seleziona il file ICS"
#. module: crm
#: wizard_view:caldav.crm.import,display:0
@@ -4029,7 +4029,7 @@ msgstr "Casi per Sezione"
#. module: crm
#: view:crm.job:0
msgid "New Jobs"
msgstr ""
msgstr "Nuovo Lavoro"
#. module: crm
#: field:crm.menu.config_wizard,fund:0
+12 -10
View File
@@ -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: 2010-01-05 05:59+0000\n"
"PO-Revision-Date: 2010-01-26 22:43+0000\n"
"PO-Revision-Date: 2010-02-02 17:06+0000\n"
"Last-Translator: pedrobom <pedrobomlimeira@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-01-29 04:52+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -1557,11 +1557,13 @@ msgid ""
"Helps you to organise the jobs hiring process: evaluation, meetings, email "
"integration..."
msgstr ""
"Ajuda você a organizar as tarefas do processo de contratação: avaliação, "
"reuniões, integração de e-mail ..."
#. module: crm
#: view:crm.fundraising:0
msgid "Funds"
msgstr ""
msgstr "Fundos"
#. module: crm
#: code:addons/crm/crm.py:0
@@ -1573,7 +1575,7 @@ msgstr "esboço"
#: model:crm.case.stage,name:crm.stage_claim5
#: model:crm.case.stage,name:crm.stage_meet4
msgid "Awaiting Response"
msgstr ""
msgstr "Aguardando resposta"
#. module: crm
#: field:crm.case,date:0
@@ -1587,7 +1589,7 @@ msgstr "Data"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name"
msgstr ""
msgstr "Nome do candidato"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead2
@@ -1598,12 +1600,12 @@ msgstr ""
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim3
msgid "Won't fix"
msgstr ""
msgstr "Não irá corrigir"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead4
msgid "Converted"
msgstr ""
msgstr "Convertido"
#. module: crm
#: view:crm.case:0
@@ -1613,7 +1615,7 @@ msgstr ""
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Reply to Last Email"
msgstr ""
msgstr "Resposta ao último Email"
#. module: crm
#: view:crm.segmentation:0
@@ -1623,7 +1625,7 @@ msgstr "Descrição da segmentação"
#. module: crm
#: help:crm.meeting,location:0
msgid "Gives Location of Meeting"
msgstr ""
msgstr "Dá a localização da reunião"
#. module: crm
#: view:crm.case:0
@@ -1638,7 +1640,7 @@ msgstr "Histórico"
#. module: crm
#: model:ir.model,name:crm.model_crm_job
msgid "Job Cases"
msgstr ""
msgstr "Casos de Emprego"
#. module: crm
#: view:crm.job:0
+3 -3
View File
@@ -287,18 +287,18 @@ class partner_create(wizard.interface):
partner_obj = pool.get('res.partner')
contact_obj = pool.get('res.partner.address')
for case in case_obj.browse(cr, uid, data['ids']):
partner_id = partner_obj.search(cr, uid, [('name', '=', case.partner_name or case.name)])
partner_id = partner_obj.search(cr, uid, [('name', '=', case.name)])
if partner_id:
raise wizard.except_wizard(_('Warning !'),_('A partner is already existing with the same name.'))
else:
partner_id = partner_obj.create(cr, uid, {
'name': case.partner_name or case.name,
'name': case.name,
'user_id': case.user_id.id,
'comment': case.description,
})
contact_id = contact_obj.create(cr, uid, {
'partner_id': partner_id,
'name': case.partner_name2,
'name': case.name,
'phone': case.partner_phone,
'mobile': case.partner_mobile,
'email': case.email_from
+6
View File
@@ -240,6 +240,12 @@
<field name="email_from" select='1' string="Email"/>
<field name="user_id" select="1" widget="selection"/>
</group>
<field name="section_id" select="1" widget="selection" string="Section">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
/>
</field>
</search>
</field>
</record>
+6 -5
View File
@@ -189,11 +189,12 @@
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Bugs" default="1"/>
</field>
<field name="state" select="1">
<filter icon="gtk-new" domain="[('state','=','draft')]" help="Draft Bugs"/>
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Bugs"/>
<filter icon="gtk-media-pause" domain="[('state','=','pending')]" help="Pending Bugs"/>
</field>
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
/>
</field>
</group>
</search>
</field>
+6 -5
View File
@@ -164,11 +164,12 @@
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Future Requests" default="1"/>
</field>
<field name="state" select="1">
<filter icon="gtk-new" domain="[('state','=','draft')]" help="Draft Future Requests"/>
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Future Requests"/>
<filter icon="gtk-media-pause" domain="[('state','=','pending')]" help="Pending Future Requests"/>
</field>
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
/>
</field>
</group>
</search>
</field>
+1 -1
View File
@@ -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-02-02 04:48+0000\n"
"X-Launchpad-Export-Date: 2010-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
+2 -2
View File
@@ -790,7 +790,7 @@ class mrp_procurement(osv.osv):
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', required=True),
'date_planned': fields.datetime('Scheduled date', required=True),
'date_close': fields.datetime('Date Closed'),
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_id': fields.many2one('product.product', 'Product', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_qty': fields.float('Quantity', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_uom': fields.many2one('product.uom', 'Product UoM', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_uos_qty': fields.float('UoS Quantity', states={'draft':[('readonly',False)]}, readonly=True),
@@ -800,7 +800,7 @@ class mrp_procurement(osv.osv):
'bom_id': fields.many2one('mrp.bom', 'BoM', ondelete='cascade', select=True),
'close_move': fields.boolean('Close Move at end', required=True),
'location_id': fields.many2one('stock.location', 'Location', required=True),
'location_id': fields.many2one('stock.location', 'Location', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Requisition Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
readonly=True, required=True, help="If you encode manually a Requisition, you probably want to use" \
" a make to order method."),
+1 -2
View File
@@ -772,8 +772,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.procurement</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','confirmed')]</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="mrp_procurement_action3" id="menu_procurement_requisitions" parent="purchase.menu_procurement_management"
File diff suppressed because it is too large Load Diff
+7 -1
View File
@@ -254,7 +254,7 @@ class task(osv.osv):
def _default_project(self, cr, uid, context={}):
if 'project_id' in context and context['project_id']:
return context['project_id']
return int(context['project_id'])
return False
#_sql_constraints = [
@@ -527,6 +527,12 @@ class message(osv.osv):
'date': fields.date('Date'),
'user_id': fields.many2one('res.users', 'User'),
}
def _default_project(self, cr, uid, context={}):
if 'project_id' in context and context['project_id']:
return int(context['project_id'])
return False
_defaults = {
'project_id':_default_project}
message()
def _project_get(self, cr, uid, context={}):
+4 -36
View File
@@ -406,26 +406,6 @@
</field>
</record>
<record id="my_pending_task" model="ir.ui.view">
<field name="name">my.pending.task.tree</field>
<field name="model">project.task</field>
<field name="type">tree</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancelled','done');blue:remaining_hours&lt;0;red:bool(date_deadline) and (date_deadline&lt;current_date) and (state in ('draft','open'));black:state not in ('cancelled','done')" string="Tasks">
<field name="sequence" string="Seq."/>
<field name="name"/>
<field name="project_id"/>
<field name="delegated_user_id"/>
<field name="date_deadline"/>
<field name="remaining_hours" widget="float_time"/>
<field name="progress" widget="progressbar"/>
<field name="priority"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_task_calendar" model="ir.ui.view">
<field name="name">project.task.calendar</field>
<field name="model">project.task</field>
@@ -491,6 +471,9 @@
<filter string="By Project" icon="terp-project" domain="[]" context="{'group_by':'project_id'}"/>
<filter string="By Stage" icon="terp-project" domain="[]" context="{'group_by':'type'}"/>
<filter string="By State" icon="terp-project" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Start Date" icon="terp-project" domain="[]" context="{'group_by':'date_start'}"/>
<filter string="End Date" icon="terp-project" domain="[]" context="{'group_by':'date_end'}"/>
</group>
</search>
</field>
@@ -656,7 +639,7 @@
</record>
<record id="view_project_message_tree" model="ir.ui.view">
<field name="name">project.message.form</field>
<field name="name">project.message.tree</field>
<field name="model">project.message</field>
<field name="type">tree</field>
<field name="arch" type="xml">
@@ -685,20 +668,5 @@
<act_window domain="[('user_id', '=', active_id),('date', '&gt;=', time.strftime('%Y-%m-01'))]" id="act_res_users_2_project_task_work_month" name="Month works" res_model="project.task.work" src_model="res.users" view_mode="tree,form" view_type="form"/>
<!-- Editable list of messages -->
<record id="view_project_editable_message_tree" model="ir.ui.view">
<field name="name">project.message.form</field>
<field name="model">project.message</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Messages" editable="top">
<field name="subject" select="1"/>
<field name="description" select="1"/>
<field name="project_id" select="1"/>
<field name="date" select="1"/>
<field name="user_id" select="1"/>
</tree>
</field>
</record>
</data>
</openerp>
@@ -1,8 +1,9 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<record model="basic.calendar" id="base_calendar.basic_calendar2">
<field name="name">meeting_todo</field>
<field name="name">Meeting-Todo</field>
</record>
<record model="basic.calendar.lines" id="caldav.calendar_lines_todo">
@@ -81,6 +82,7 @@
<field name="type_id" ref="caldav.calendar_lines_todo" />
<field name="field_id" search="[('name','=','priority'),('model_id.model','=','project.task')]" />
<field name="fn">field</field>
<field name="mapping">{'1': '0', '2': '1', '3': '1','4': '1', '5': '2', '6': '3', '7': '3', '8': '3', '9': '4'}</field>
</record>
<record model="basic.calendar.fields" id="map_todo_13">
@@ -439,10 +441,5 @@
<field name="fn">field</field>
</record>
</data>
</openerp>
+10 -10
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,7 +15,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@@ -46,13 +46,13 @@ class report_project_task_user(osv.osv):
create or replace view report_project_task_user as (
select
min(t.id) as id,
to_char(date_close, 'YYYY') as name,
to_char(date_close, 'MM') as month,
to_char(date_end, 'YYYY') as name,
to_char(date_end, 'MM') as month,
count(distinct t.id) as task_closed,
t.user_id,
t.project_id,
sum(planned_hours) as hours_planned,
to_char(avg(date_close::abstime-t.create_date::timestamp), 'DD"d" HH24:MI:SS') as closing_days,
to_char(avg(date_end::abstime-t.create_date::timestamp), 'DD"d" HH24:MI:SS') as closing_days,
sum(w.hours) as hours_effective,
((sum(planned_hours)-sum(w.hours))/count(distinct t.id))::decimal(16,2) as hours_delay
from project_task t
@@ -60,7 +60,7 @@ class report_project_task_user(osv.osv):
where
t.state='done'
group by
to_char(date_close, 'YYYY'),to_char(date_close, 'MM'),t.user_id,project_id
to_char(date_end, 'YYYY'),to_char(date_end, 'MM'),t.user_id,project_id
)
""")
report_project_task_user()
@@ -89,12 +89,12 @@ class report_project_task(osv.osv):
create or replace view report_project_task as (
select
min(t.id) as id,
to_char(date_close, 'YYYY') as name,
to_char(date_close, 'MM') as month,
to_char(date_end, 'YYYY') as name,
to_char(date_end, 'MM') as month,
count(distinct t.id) as task_closed,
t.project_id,
sum(planned_hours) as hours_planned,
to_char(avg(date_close::abstime-t.create_date::timestamp), 'DD"d" HH12:MI:SS') as closing_days,
to_char(avg(date_end::abstime-t.create_date::timestamp), 'DD"d" HH12:MI:SS') as closing_days,
sum(w.hours) as hours_effective,
((sum(planned_hours)-sum(w.hours))/count(distinct t.id))::decimal(16,2) as hours_delay
from project_task t
@@ -102,7 +102,7 @@ class report_project_task(osv.osv):
where
t.state='done'
group by
to_char(date_close, 'YYYY'),to_char(date_close, 'MM'),project_id
to_char(date_end, 'YYYY'),to_char(date_end, 'MM'),project_id
)
""")
report_project_task()
+4 -3
View File
@@ -79,7 +79,7 @@ class report_closed_task(osv.osv):
'priority' : fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Importance', readonly=True),
'state': fields.selection([('draft', 'Draft'),('open', 'In Progress'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'Status', readonly=True),
'remaining_hours': fields.float('Remaining Hours', readonly=True),
'date_close' : fields.datetime('Date Closed', readonly=True)
'date_end' : fields.datetime('Date Closed', readonly=True)
}
def init(self, cr):
@@ -91,10 +91,11 @@ class report_closed_task(osv.osv):
tsk.date_deadline as date_deadline, tsk.planned_hours as planned_hours,
tsk.delay_hours as delay_hours, tsk.progress as progress,
tsk.priority as priority, tsk.state as state,
tsk.remaining_hours as remaining_hours
tsk.remaining_hours as remaining_hours, tsk.date_end as date_end
from
project_task tsk
where
(tsk.date_end <= CURRENT_DATE AND tsk.date_end > (CURRENT_DATE-15))
)
''')
report_closed_task()
+87
View File
@@ -0,0 +1,87 @@
# Italian 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:05+0000\n"
"PO-Revision-Date: 2010-02-02 09:39+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\n"
"Language-Team: Italian <it@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-02-03 04:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: thunderbird
#: field:tinythunderbird.partner,copy_to:0
msgid "Copy To"
msgstr "Copia a"
#. module: thunderbird
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Il nome dell'oggetto deve iniziare per x_ e non deve contenere caratteri "
"speciali!"
#. module: thunderbird
#: field:tinythunderbird.partner,description:0
msgid "Description"
msgstr "Descrizione"
#. module: thunderbird
#: field:tinythunderbird.partner,reference:0
msgid "Reference"
msgstr "Riferimento"
#. module: thunderbird
#: model:ir.model,name:thunderbird.model_tinythunderbird_partner
msgid "Thunderbid mails"
msgstr "Posta Thunderbid"
#. module: thunderbird
#: field:tinythunderbird.partner,attachments:0
msgid "Attached Files"
msgstr "File Allegati"
#. module: thunderbird
#: field:tinythunderbird.partner,res_user_id:0
msgid "User"
msgstr "Utente"
#. module: thunderbird
#: field:tinythunderbird.partner,receiver:0
msgid "Receiver"
msgstr "Destinatario"
#. module: thunderbird
#: field:tinythunderbird.partner,date:0
msgid "Date"
msgstr "Data"
#. module: thunderbird
#: field:tinythunderbird.partner,title:0
msgid "Subject"
msgstr "Oggetto"
#. module: thunderbird
#: code:addons/thunderbird/partner/partner.py:0
#, python-format
msgid "Archive"
msgstr "Archivia"
#. module: thunderbird
#: model:ir.module.module,shortdesc:thunderbird.module_meta_information
msgid "Thunderbird Interface"
msgstr "Interfaccia Thunderbird"
#. module: thunderbird
#: field:tinythunderbird.partner,sender:0
msgid "Sender"
msgstr "Mittente"