diff --git a/addons/pad/pad.py b/addons/pad/pad.py
index 70144aedd80..2e69b099d1a 100644
--- a/addons/pad/pad.py
+++ b/addons/pad/pad.py
@@ -2,6 +2,7 @@
from osv import fields, osv
import random
import string
+from etherpad import EtherpadLiteClient
class pad_common(osv.osv_memory):
@@ -18,11 +19,21 @@ class pad_common(osv.osv_memory):
}
return pad_url_template % template_vars
- def _pad_api_key(self, cr, uid, context=None):
- return self.pool.get('res.users').browse(cr,uid,[uid])[0].company_id.etherpad_api_key
+ def _pad_api_key(self, cr, uid, ids=None, name=None, arg=None , context=None):
+ if not ids:
+ return self.pool.get('res.users').browse(cr,uid,[uid],context)[0].company_id.etherpad_api_key
+ res = {}
+ for id in ids:
+ res[id] = self.pool.get('res.users').browse(cr,uid,[uid],context)[0].company_id.etherpad_api_key
+ return res
- def _pad_user_name(self, cr, uid, context=None):
- return self.pool.get('res.users').browse(cr,uid,[uid])[0].name
+ def _pad_user_name(self, cr, uid, ids=None, name = None, arg = None, context=None):
+ if not ids:
+ return self.pool.get('res.users').browse(cr,uid,[uid],context=context)[0].name
+ res = {}
+ for id in ids:
+ res[id] = self.pool.get('res.users').browse(cr,uid,[uid],context=context)[0].name
+ return res
def copy(self, cr, uid, id, default=None, context=None):
if not default:
@@ -35,32 +46,22 @@ class pad_common(osv.osv_memory):
def create(self, cr, uid, vals, context=None):
record_id = super(pad_common, self).create(cr, uid, vals, context=context)
res = self.browse(cr,uid, record_id)
- url = res.pad_url
- if url:
- self.pool.get('ir.attachment').create(cr, uid, {
- 'res_model' : self._name,
- 'res_id' : record_id,
- 'type' : 'url',
- 'name' : 'Pad',
- 'url' : url,
- })
+ url = res.pad_url
+ api_key = self._pad_api_key(cr, uid)
+ if api_key:
+ api_url = url[0:url.find("p/")] + "api/"
+ pad_id = url[url.find("p/")+2:]
+ pad_author = self._pad_user_name(cr,uid)
+ ep_client = EtherpadLiteClient(api_key, api_url)
+ ep_client.createPad(pad_id,"")
+ ep_client.createAuthor(pad_author)
return record_id
_columns = {
- 'pad_url': fields.char('Full Screen', size=512),
- 'pad_api_key': fields.function(_pad_api_key, type='text', string="Pad API Key"),
- 'pad_user_name': fields.function(_pad_user_name, type='text', string="Current Pad User"),
+ 'pad_url': fields.char('Full Screen', size=512),
}
_defaults = {
- 'pad_url': lambda self, cr, uid, context: self.pool.get('ir.attachment').pad_generate_url(cr, uid, self._name)
+ 'pad_url': lambda self, cr, uid, context: self.pool.get('ir.attachment').pad_generate_url(cr, uid, self._name),
}
- def action_open_pad(self, cr, uid, ids, context=None):
- """Get pad action
- """
- url = self.browse(cr, uid, ids[0]).pad_url
- return {
- 'type': 'ir.actions.act_url',
- 'url': url
- }
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/pad/static/src/js/pad.js b/addons/pad/static/src/js/pad.js
index 524cd45e868..287f7389918 100644
--- a/addons/pad/static/src/js/pad.js
+++ b/addons/pad/static/src/js/pad.js
@@ -19,10 +19,14 @@ instance.web.form.FieldEtherpad = instance.web.form.AbstractField.extend(_.exten
this.render_value();
},
render_value: function() {
- var show_value = instance.web.format_value(this.get('value'), this, '');
- console.log(this);
- if (!this.get("effective_readonly")) {
- this.$element.find('div').html('');
+ var show_value = instance.web.format_value(this.get('value'), this, '');
+ if (!this.get("effective_readonly")) {
+ // var pad_url = show_value.split('\n')[0];
+// var api_url = pad_url.substring( 0, (pad_url.search("/p/")+1) );
+ // var pad_id = pad_url.substring((pad_url.search("p/")+2) );
+ // console.log(this);
+ this.$element.find('div').html('');
+
} else {
if(this.get('value') != false)
{