From cd6afa7a45a2869f82a6151182a4bc539d1e59d8 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 19 Sep 2012 10:32:24 +0200 Subject: [PATCH 1/4] [IMP] note: tags in header for form view bzr revid: chm@openerp.com-20120919083224-tx0t3etaj9wbq5vg --- addons/note/note_view.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml index ccb07544c09..64e2710cc16 100644 --- a/addons/note/note_view.xml +++ b/addons/note/note_view.xml @@ -117,12 +117,10 @@
+
- - - From 00587c9a1a789f2a2fb8dc32b8726f892bc70d89 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 19 Sep 2012 11:36:02 +0200 Subject: [PATCH 2/4] [IMP] base_calendar: add 'Agenda' in Home menu bzr revid: chm@openerp.com-20120919093602-zr2l6khjab0kr4lq --- addons/base_calendar/base_calendar_view.xml | 1 + addons/mail/mail_thread_view.xml | 3 ++- addons/note/note_view.xml | 7 ++----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index 0ea2be4f37f..d374c2e6d88 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -428,5 +428,6 @@ name="Events" parent="base.menu_calendar_configuration" sequence="15" action="action_view_event"/> + diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml index 34efa05f812..b4b1aade755 100644 --- a/addons/mail/mail_thread_view.xml +++ b/addons/mail/mail_thread_view.xml @@ -9,7 +9,8 @@ sequence="10"/> - + + My Feeds diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml index 64e2710cc16..516a10ebd6e 100644 --- a/addons/note/note_view.xml +++ b/addons/note/note_view.xml @@ -1,8 +1,6 @@ - - note.stage.form @@ -38,8 +36,6 @@ [('user_id','=',uid)] - - note.note.kanban @@ -183,7 +179,8 @@ {'search_default_open_true':True} - + + From 7543985b1bbfaa1b371b27ce7c7b599b4e999d50 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 19 Sep 2012 13:51:30 +0200 Subject: [PATCH 3/4] [IMP] contacts: new module bzr revid: chm@openerp.com-20120919115130-aiz8syfztaoezwoe --- addons/contacts/__init__.py | 21 ++++++++++ addons/contacts/__openerp__.py | 43 +++++++++++++++++++ addons/contacts/contacts_view.xml | 53 ++++++++++++++++++++++++ addons/contacts/static/src/img/icon.png | Bin 0 -> 51524 bytes addons/note/__openerp__.py | 6 +-- addons/note/note_view.xml | 2 +- 6 files changed, 121 insertions(+), 4 deletions(-) create mode 100644 addons/contacts/__init__.py create mode 100644 addons/contacts/__openerp__.py create mode 100644 addons/contacts/contacts_view.xml create mode 100644 addons/contacts/static/src/img/icon.png diff --git a/addons/contacts/__init__.py b/addons/contacts/__init__.py new file mode 100644 index 00000000000..26c654db9dd --- /dev/null +++ b/addons/contacts/__init__.py @@ -0,0 +1,21 @@ +# -*- 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 . +# +############################################################################## + diff --git a/addons/contacts/__openerp__.py b/addons/contacts/__openerp__.py new file mode 100644 index 00000000000..81b2af3422e --- /dev/null +++ b/addons/contacts/__openerp__.py @@ -0,0 +1,43 @@ +# -*- 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 . +# +############################################################################## + +{ + 'name': 'Contacts', + 'version': '1.0', + 'category': 'Tools', + 'description': """ +This module gives you a quick view of your address book, accessible from your home page. +""", + 'author': 'OpenERP SA', + 'website': 'http://openerp.com', + 'summary': 'Contacts, Address book', + 'depends': [ + 'mail', + ], + 'data': [ + 'contacts_view.xml', + ], + 'installable': True, + 'application': True, + 'auto_install': False, +} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/contacts/contacts_view.xml b/addons/contacts/contacts_view.xml new file mode 100644 index 00000000000..4908653aa2b --- /dev/null +++ b/addons/contacts/contacts_view.xml @@ -0,0 +1,53 @@ + + + + + + + Contacts + ir.actions.act_window + res.partner + form + kanban,tree,form + + +

+ Click to add a contact in your address book. +

+ OpenERP helps you easily track all activities related to + a customer; discussions, history of business opportunities, + documents, etc. +

+
+
+ + + + kanban + + + + + + tree + + + + + + form + + + + + + +
+
+ + diff --git a/addons/contacts/static/src/img/icon.png b/addons/contacts/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9f8ee3422cbd8895dc5f1905e43f3085982160 GIT binary patch literal 51524 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 Ra(4g#002ovPDHLkV1hv{`(OY7 literal 0 HcmV?d00001 diff --git a/addons/note/__openerp__.py b/addons/note/__openerp__.py index 7d6cac5b85b..2c6134e5e3a 100644 --- a/addons/note/__openerp__.py +++ b/addons/note/__openerp__.py @@ -20,7 +20,7 @@ ############################################################################## { - 'name': 'Memos', + 'name': 'Notes', 'version': '1.0', 'category': 'Tools', 'description': """ @@ -28,12 +28,12 @@ This module allows users to create their own notes inside OpenERP ================================================================= Use notes to write meeting minutes, organize ideas, organize personnal todo -lists, etc. Each user manages his own personnal memos. Notes are available to +lists, etc. Each user manages his own personnal Notes. Notes are available to their authors only, but they can share notes to others users so that several people can work on the same note in real time. It's very efficient to share meeting minutes. -Memos can be found in the 'Home' menu. +Notes can be found in the 'Home' menu. """, 'author': 'OpenERP SA', 'website': 'http://openerp.com', diff --git a/addons/note/note_view.xml b/addons/note/note_view.xml index 516a10ebd6e..8d943dde44d 100644 --- a/addons/note/note_view.xml +++ b/addons/note/note_view.xml @@ -179,7 +179,7 @@ {'search_default_open_true':True}
- + From 245002e48d9ce1ecbe0961071c0644b48f5a79bb Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 19 Sep 2012 16:35:53 +0200 Subject: [PATCH 4/4] [IMG] base_calendar, note_pad bzr revid: chm@openerp.com-20120919143553-lmlvshitpkkftyln --- addons/base_calendar/__openerp__.py | 3 ++- addons/base_calendar/static/src/img/icon.png | Bin 0 -> 7726 bytes addons/contacts/__openerp__.py | 5 ++-- addons/note/note.py | 11 ++------- addons/note/note_demo.xml | 22 +++++++++--------- addons/note_pad/note_pad.py | 10 ++------ addons/pad/pad.py | 23 +++++++++---------- addons/pad/static/src/js/pad.js | 9 +++++++- 8 files changed, 39 insertions(+), 44 deletions(-) create mode 100644 addons/base_calendar/static/src/img/icon.png diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py index 48ec05e2e92..b1afacfbd01 100644 --- a/addons/base_calendar/__openerp__.py +++ b/addons/base_calendar/__openerp__.py @@ -20,7 +20,7 @@ ############################################################################## { - 'name': 'Calendar Layer', + 'name': 'Calendar', 'version': '1.0', 'depends': ['base', 'base_status', 'mail', 'base_action_rule'], 'description': """ @@ -51,6 +51,7 @@ If you need to manage your meetings, you should install the CRM module. ], 'test' : ['test/base_calendar_test.yml'], 'installable': True, + 'application': True, 'auto_install': False, 'certificate': '00694071962960352821', 'images': ['images/base_calendar1.jpeg','images/base_calendar2.jpeg','images/base_calendar3.jpeg','images/base_calendar4.jpeg',], diff --git a/addons/base_calendar/static/src/img/icon.png b/addons/base_calendar/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f612cd9ea4b540577b146efba5475cb3baec9467 GIT binary patch literal 7726 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 literal 0 HcmV?d00001 diff --git a/addons/contacts/__openerp__.py b/addons/contacts/__openerp__.py index 81b2af3422e..3b4df183478 100644 --- a/addons/contacts/__openerp__.py +++ b/addons/contacts/__openerp__.py @@ -20,15 +20,16 @@ ############################################################################## { - 'name': 'Contacts', + 'name': 'Address Book', 'version': '1.0', 'category': 'Tools', 'description': """ This module gives you a quick view of your address book, accessible from your home page. +You can track your suppliers, customers and other contacts. """, 'author': 'OpenERP SA', 'website': 'http://openerp.com', - 'summary': 'Contacts, Address book', + 'summary': 'Contacts, People and Companies', 'depends': [ 'mail', ], diff --git a/addons/note/note.py b/addons/note/note.py index 13d6bdbfee2..fb3f0cee853 100644 --- a/addons/note/note.py +++ b/addons/note/note.py @@ -59,19 +59,12 @@ class note_note(osv.osv): rec_id = self.create(cr, uid, {'memo': name}, context=context) return self.name_get(cr, uid, [rec_id], context)[0] - def _from_xml(self, mappings): - return chr(int( mappings.group(1) )) - - #read the first line (convert hml into text) def _get_note_first_line(self, cr, uid, ids, name="", args={}, context=None): res = {} for note in self.browse(cr, uid, ids, context=context): - text_note = (note.memo or '').strip().split('\n')[0] - text_note = re.sub(r'(\S?)(|<[/]?p>|<[/]?div>|)[\s\S]*',r'\1',text_note) - text_note = re.sub(r'<[^>]+>','',text_note) - text_note = html2plaintext(text_note) - res[note.id] = text_note + res[note.id] = (note.memo and html2plaintext(note.memo) or "").strip().replace('*','').split("\n")[0] + return res #unactivate a sticky note and record the date diff --git a/addons/note/note_demo.xml b/addons/note/note_demo.xml index 1cc1b2fc790..16fa5a3f66b 100644 --- a/addons/note/note_demo.xml +++ b/addons/note/note_demo.xml @@ -28,7 +28,7 @@ Customer report #349872 - Customer report #349872

* Calendar app in Home
* The base_calendar module should create a menu in Home, like described above.
* This module should become a main application (in the first screen at installation) @@ -40,7 +40,7 @@
- Call Fabien

* Followed by the telephone conversation and mail about D.544.3 ]]>
@@ -48,21 +48,21 @@
- Call Marc

]]>
- Project N.947.5

]]>
- Shop for family dinner
* stuffed turkey
* wine ]]> @@ -71,7 +71,7 @@
- Idea to develop

* Create a module note_pad it transforms the html editable memo text field into widget='pad', similar to project_pad depends on 'memo' and 'pad' modules ]]> @@ -80,7 +80,7 @@
- Read some documentation about OpenERP before diving into the code

* Open ERP: a modern approach to integrated business management
* Open ERP for Retail and Industrial Management ]]> @@ -89,7 +89,7 @@
- New computer specs

* Motherboard according to processor
* Processor @@ -111,7 +111,7 @@
- Read those books

* Open ERP: a modern approach to integrated business management
* Open ERP for Retail and Industrial Management ]]> @@ -120,7 +120,7 @@
- Read some documentation about OpenERP before diving into the code

* Open ERP: a modern approach to integrated business management
* Open ERP for Retail and Industrial Management ]]> @@ -129,7 +129,7 @@
- Read some documentation about OpenERP before diving into the code

* Open ERP: a modern approach to integrated business management
* Open ERP for Retail and Industrial Management ]]> diff --git a/addons/note_pad/note_pad.py b/addons/note_pad/note_pad.py index 9864f0ae14f..d0c18a9f986 100644 --- a/addons/note_pad/note_pad.py +++ b/addons/note_pad/note_pad.py @@ -31,11 +31,5 @@ class note_pad_note(osv.osv): _pad_fields = ['note_pad'] _columns = { - 'note_pad_url': fields.char('Pad Url', - pad_content_field='memo', - size=250 ), - } - - #_defaults = { - # 'note_pad_url': lambda self, cr, uid, context: self.pad_generate_url(cr, uid, context), - #} + 'note_pad_url': fields.char('Pad Url', pad_content_field='memo'), + } \ No newline at end of file diff --git a/addons/pad/pad.py b/addons/pad/pad.py index d21ccd42d16..48ac940ccfa 100644 --- a/addons/pad/pad.py +++ b/addons/pad/pad.py @@ -21,7 +21,7 @@ class pad_common(osv.osv_memory): s = string.ascii_uppercase + string.digits salt = ''.join([s[random.randint(0, len(s) - 1)] for i in range(10)]) # contruct the url - url = '%s/p/%s-%s-%s' % (pad_server, cr.dbname, self._name, salt) + url = '%s/p/%s-%s-%s' % (pad_server, cr.dbname.replace('_','-'), self._name, salt) return url def pad_get_content(self, cr, uid, url, context=None): @@ -35,22 +35,21 @@ class pad_common(osv.osv_memory): # TODO # reverse engineer protocol to be setHtml without using the api key - # override read and copy to generate url and store the content if empty - - def default_get(self, cr, uid, fields, context=None): - data = super(pad_common, self).default_get(cr, uid, fields, context) - for k in fields: - field = self._all_columns[k].column - if hasattr(field,'pad_content_field'): - data[k] = self.pad_generate_url(cr, uid, context=context) - return data def write(self, cr, uid, ids, vals, context=None): + self._set_pad_value(cr, uid, vals, context) + return super(pad_common, self).write(cr, uid, ids, vals, context=context) + + def create(self, cr, uid, vals, context=None): + self._set_pad_value(cr, uid, vals, context) + return super(pad_common, self).create(cr, uid, vals, context=context) + + # Set the pad content in vals + def _set_pad_value(self, cr, uid, vals, context=None): for k,v in vals.items(): field = self._all_columns[k].column if hasattr(field,'pad_content_field'): - vals[field.pad_content_field] = self.pad_get_content(cr, uid, v, context=context) - return super(pad_common, self).write(cr, uid, ids, vals, context=context) + vals[field.pad_content_field] = self.pad_get_content(cr, uid, v, context=context) def copy(self, cr, uid, id, default=None, context=None): if not default: diff --git a/addons/pad/static/src/js/pad.js b/addons/pad/static/src/js/pad.js index 511400bcede..b7c13ba1b89 100644 --- a/addons/pad/static/src/js/pad.js +++ b/addons/pad/static/src/js/pad.js @@ -16,8 +16,15 @@ instance.web.form.FieldPad = instance.web.form.AbstractField.extend({ var self = this; var _super = self._super; _super.apply(self,[val]); + if (val === false || val === "") { + self.field_manager.dataset.call('pad_generate_url').then(function(r) { + _super.apply(self,[r]); + self.render_value(); + }); + } else { + self.render_value(); + } this._dirty_flag = true; - self.render_value(); }, render_value: function() { console.log("display");