diff --git a/addons/base_calendar/__init__.py b/addons/base_calendar/__init__.py new file mode 100644 index 00000000000..ec4f5070d63 --- /dev/null +++ b/addons/base_calendar/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import base_calendar +import crm_meeting +import wizard + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py index 1c8d35099b8..3f6ca129f6f 100644 --- a/addons/base_calendar/__openerp__.py +++ b/addons/base_calendar/__openerp__.py @@ -22,7 +22,7 @@ { "name": "Calendar Layer", "version": "1.0", - "depends": ["base", "mail"], + "depends": ["base", "base_status", "mail"], 'description': """ This is a full-featured calendar system. ======================================== @@ -46,7 +46,8 @@ If you need to manage your meetings, you should install the CRM module. 'security/calendar_security.xml', 'security/ir.model.access.csv', 'wizard/base_calendar_invite_attendee_view.xml', - 'base_calendar_view.xml' + 'base_calendar_view.xml', + 'crm_meeting_view.xml', ], "test" : ['test/base_calendar_test.yml'], "installable": True, diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py new file mode 100644 index 00000000000..dcc97156681 --- /dev/null +++ b/addons/base_calendar/crm_meeting.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import osv, fields +import tools +from tools.translate import _ + +import base_calendar +from base_status.base_state import base_state + +# +# crm.meeting is defined here so that it may be used by modules other than crm, +# without forcing the installation of crm. +# + +class crm_meeting_type(osv.Model): + _name = 'crm.meeting.type' + _description = 'Meeting Type' + _columns = { + 'name': fields.char('Name', size=64, required=True, translate=True), + } + +class crm_meeting(base_state, osv.Model): + """ Model for CRM meetings """ + _name = 'crm.meeting' + _description = "Meeting" + _order = "id desc" + _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] + _columns = { + # base_state required fields + 'create_date': fields.datetime('Creation Date', readonly=True), + 'write_date': fields.datetime('Write Date', readonly=True), + 'date_open': fields.datetime('Confirmed', readonly=True), + 'date_closed': fields.datetime('Closed', readonly=True), + 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), + 'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, + help="These people will receive email."), + 'state': fields.selection( + [('draft', 'Unconfirmed'), ('open', 'Confirmed'), ('cancel', 'Cancelled'), ('done', 'Done')], + string='Status', size=16, readonly=True), + # Meeting fields + 'name': fields.char('Summary', size=128, required=True, states={'done': [('readonly', True)]}), + 'categ_id': fields.many2one('crm.meeting.type', 'Meeting Type'), + 'attendee_ids': fields.many2many('calendar.attendee', 'meeting_attendee_rel',\ + 'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}), + } + _defaults = { + 'state': 'draft', + } + + # ---------------------------------------- + # OpenChatter + # ---------------------------------------- + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + return 'Meeting' + + def case_open_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been confirmed."), context=context) + + def case_close_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been done."), context=context) + + diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml new file mode 100644 index 00000000000..b6365ebc53c --- /dev/null +++ b/addons/base_calendar/crm_meeting_view.xml @@ -0,0 +1,371 @@ + + + + + + + + Mark read + True + ir.actions.server + + code + self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context) + + + action_crm_meeting_read + + + action + + crm.meeting + client_action_multi + + + + Mark unread + True + ir.actions.server + + code + self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context) + + + action_crm_meeting_unread + + + action + + crm.meeting + client_action_multi + + + + + + Meeting Types Tree + crm.meeting.type + tree + + + + + + + + + Meeting Types + crm.meeting.type + form + + Create different meeting categories to better organize and classify your meetings. + + + + + + + + CRM - Meetings Form + crm.meeting + form + +
+
+
+ +
+
+
+

+ +

+

+

+

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +