diff --git a/addons/wiki/security/ir.model.access.csv b/addons/wiki/security/ir.model.access.csv
index acb871141ff..9ddfa27eee2 100644
--- a/addons/wiki/security/ir.model.access.csv
+++ b/addons/wiki/security/ir.model.access.csv
@@ -6,3 +6,7 @@
"wiki_groups_link","wiki.groups.link","model_wiki_groups_link","base.group_system",1,1,1,1
"wiki_wiki_history","wiki.wiki.history","model_wiki_wiki_history","base.group_user",1,0,1,0
"wiki_wizard_wiki_history_show_diff","wizard.wiki.history.show_diff","model_wizard_wiki_history_show_diff","base.group_user",1,1,1,1
+"wiki_wiki_page_open","wiki.wiki.page.open","model_wiki_wiki_page_open","base.group_user",1,1,1,1
+"wiki_create_menu","wiki.create.menu","model_wiki_create_menu","base.group_user",1,1,1,1
+"wiki_wiki_help_open","wiki.wiki.help.open","model_wiki_wiki_help_open","base.group_user",1,1,1,1
+"wiki_make_index","wiki.make.index","model_wiki_make_index","base.group_user",1,1,1,1
diff --git a/addons/wiki/wiki.py b/addons/wiki/wiki.py
index 70511d3e56f..80c80ae7fe6 100644
--- a/addons/wiki/wiki.py
+++ b/addons/wiki/wiki.py
@@ -27,71 +27,89 @@
##############################################################################
from osv import fields, osv
-import time
-from StringIO import StringIO
-from HTMLParser import HTMLParser
+import difflib
class Wiki(osv.osv):
- _name="wiki.wiki"
+ """ wiki """
+
+ _name = "wiki.wiki"
+
Wiki()
class WikiGroup(osv.osv):
""" Wiki Groups """
+
_name = "wiki.groups"
- _description="Wiki Groups"
+ _description = "Wiki Groups"
_order = 'name'
- _columns={
+
+ _columns = {
'name':fields.char('Wiki Group', size=256, select=True, required=True),
'page_ids':fields.one2many('wiki.wiki', 'group_id', 'Pages'),
'notes':fields.text("Description"),
'create_date':fields.datetime("Created Date", select=True),
'template': fields.text('Wiki Template'),
'section': fields.boolean("Make Section ?"),
- 'method':fields.selection([('list','List'),('page','Home Page'),('tree','Tree')],'Display Method'),
+ 'method':fields.selection([('list', 'List'), ('page', 'Home Page'), \
+ ('tree', 'Tree')], 'Display Method'),
'home':fields.many2one('wiki.wiki', 'Pages'),
}
+
_defaults = {
'method': lambda *a: 'page',
}
+
WikiGroup()
class GroupLink(osv.osv):
""" Apply Group Link """
+
_name = "wiki.groups.link"
- _description="Wiki Groups Links"
+ _description = "Wiki Groups Links"
_rec_name = 'action_id'
- _columns={
- 'group_id':fields.many2one('wiki.groups', 'Parent Group', ondelete='set null'),
+
+ _columns = {
+ 'group_id': fields.many2one('wiki.groups', 'Parent Group', ondelete='set null'),
'action_id': fields.many2one('ir.ui.menu', 'Menu')
}
+
GroupLink()
class Wiki(osv.osv):
- _inherit="wiki.wiki"
- _description="Wiki Page"
+ """ Wiki Page """
+
+ _inherit = "wiki.wiki"
+ _description = "Wiki Page"
_order = 'section,create_date desc'
- _columns={
- 'name':fields.char('Title', size=256, select=True, required=True),
- 'write_uid':fields.many2one('res.users',"Last Author"),
- 'text_area':fields.text("Content"),
- 'create_uid':fields.many2one('res.users','Author', select=True),
- 'create_date':fields.datetime("Created on", select=True),
- 'write_date':fields.datetime("Modification Date", select=True),
- 'tags':fields.char('Tags', size=1024),
- 'history_id':fields.one2many('wiki.wiki.history','wiki_id','History Lines'),
- 'minor_edit':fields.boolean('Minor edit', select=True),
- 'summary':fields.char('Summary',size=256),
+
+ _columns = {
+ 'name': fields.char('Title', size=256, select=True, required=True),
+ 'write_uid': fields.many2one('res.users',"Last Author"),
+ 'text_area': fields.text("Content"),
+ 'create_uid': fields.many2one('res.users','Author', select=True),
+ 'create_date': fields.datetime("Created on", select=True),
+ 'write_date': fields.datetime("Modification Date", select=True),
+ 'tags': fields.char('Tags', size=1024),
+ 'history_id': fields.one2many('wiki.wiki.history','wiki_id','History Lines'),
+ 'minor_edit': fields.boolean('Minor edit', select=True),
+ 'summary': fields.char('Summary',size=256),
'section': fields.char('Sequence', size=32, help="Use page section code like 1.2.1"),
- 'group_id':fields.many2one('wiki.groups', 'Wiki Group', select=1, ondelete='set null'),
- 'toc':fields.boolean('Table of Contents'),
+ 'group_id': fields.many2one('wiki.groups', 'Wiki Group', select=1, ondelete='set null'),
+ 'toc': fields.boolean('Table of Contents'),
'review': fields.boolean('Need Review'),
- 'parent_id':fields.many2one('wiki.wiki', 'Parent Page'),
- 'child_ids':fields.one2many('wiki.wiki', 'parent_id', 'Child Pages'),
+ 'parent_id': fields.many2one('wiki.wiki', 'Parent Page'),
+ 'child_ids': fields.one2many('wiki.wiki', 'parent_id', 'Child Pages'),
}
def onchange_group_id(self, cr, uid, ids, group_id, content, context={}):
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of wiki page’s IDs
+ @return : dictionay of open wiki page on give page section """
+
if (not group_id) or content:
return {}
grp = self.pool.get('wiki.groups').browse(cr, uid, group_id)
@@ -111,14 +129,24 @@ class Wiki(osv.osv):
'section': section
}
}
+
def copy_data(self, cr, uid, id, default=None, context=None):
- return super(Wiki, self).copy_data(cr, uid, id, {'wiki_id':False}, context)
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param id: Give wiki page's ID """
+
+ return super(Wiki, self).copy_data(cr, uid, id, {'wiki_id': False}, context)
def create(self, cr, uid, vals, context=None):
- id = super(Wiki,self).create(cr, uid, vals, context)
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks, """
+
+ id = super(Wiki,self).create(cr, uid, vals, context)
history = self.pool.get('wiki.wiki.history')
- if vals.get('text_area'):
- res = {
+ if vals.get('text_area'):
+ res = {
'minor_edit':vals.get('minor_edit', True),
'text_area':vals.get('text_area',''),
'write_uid':uid,
@@ -126,10 +154,14 @@ class Wiki(osv.osv):
'summary':vals.get('summary','')
}
history.create(cr, uid, res)
- return id
+ return id
def write(self, cr, uid, ids, vals, context=None):
- result = super(Wiki,self).write(cr, uid, ids, vals, context)
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks, """
+
+ result = super(Wiki, self).write(cr, uid, ids, vals, context)
history = self.pool.get('wiki.wiki.history')
if vals.get('text_area'):
for id in ids:
@@ -148,24 +180,30 @@ Wiki()
class History(osv.osv):
""" Wiki History """
- _name="wiki.wiki.history"
- _description="Wiki History"
- _rec_name="date_time"
+
+ _name = "wiki.wiki.history"
+ _description = "Wiki History"
+ _rec_name = "date_time"
_order = 'id DESC'
- _columns={
- 'create_date':fields.datetime("Date",select=True),
- 'text_area':fields.text("Text area"),
- 'minor_edit':fields.boolean('This is a major edit ?',select=True),
- 'summary':fields.char('Summary',size=256, select=True),
- 'write_uid':fields.many2one('res.users',"Modify By", select=True),
- 'wiki_id':fields.many2one('wiki.wiki','Wiki Id', select=True)
+
+ _columns = {
+ 'create_date': fields.datetime("Date",select=True),
+ 'text_area': fields.text("Text area"),
+ 'minor_edit': fields.boolean('This is a major edit ?',select=True),
+ 'summary': fields.char('Summary',size=256, select=True),
+ 'write_uid': fields.many2one('res.users',"Modify By", select=True),
+ 'wiki_id': fields.many2one('wiki.wiki','Wiki Id', select=True)
}
+
_defaults = {
'write_uid': lambda obj,cr,uid,context: uid,
}
def getDiff(self, cr, uid, v1, v2, context={}):
- import difflib
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks, """
+
history_pool = self.pool.get('wiki.wiki.history')
text1 = history_pool.read(cr, uid, [v1], ['text_area'])[0]['text_area']
text2 = history_pool.read(cr, uid, [v2], ['text_area'])[0]['text_area']
diff --git a/addons/wiki/wiki_view.xml b/addons/wiki/wiki_view.xml
index 07f89257dbd..a4189ec6a8f 100644
--- a/addons/wiki/wiki_view.xml
+++ b/addons/wiki/wiki_view.xml
@@ -14,7 +14,7 @@
-
+
wiki.groups.tree
@@ -26,6 +26,9 @@
+
+
+
wiki.groups.form
wiki.groups
@@ -56,6 +59,8 @@
+
+
Wikis
wiki.groups
@@ -74,7 +79,7 @@
tree
-
+
wiki.wiki.tree.childs
@@ -93,6 +98,8 @@
+
+
wiki.wiki.tree
wiki.wiki
@@ -109,6 +116,8 @@
+
+
wiki.wiki.form
wiki.wiki
@@ -134,6 +143,8 @@
+
+
wiki.wiki.search
wiki.wiki
@@ -181,7 +192,7 @@
-
+
wiki.wiki.history.tree
@@ -197,6 +208,8 @@
+
+
wiki.wiki.history.form
wiki.wiki.history
@@ -212,6 +225,8 @@
+
+
All Page Histories
wiki.wiki.history
@@ -235,7 +250,7 @@
tree_but_open
wiki.groups
Search a Page
-
+
diff --git a/addons/wiki/wizard/show_diff.py b/addons/wiki/wizard/show_diff.py
index d77130f2aed..18fd4f755dc 100644
--- a/addons/wiki/wizard/show_diff.py
+++ b/addons/wiki/wizard/show_diff.py
@@ -22,9 +22,16 @@
from osv import fields,osv
class showdiff(osv.osv_memory):
+ """ Disp[ay Difference for History """
+
_name = 'wizard.wiki.history.show_diff'
def _get_diff(self, cr, uid, ctx):
+
+ """ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ """
+
history = self.pool.get('wiki.wiki.history')
ids = ctx.get('active_ids')
diff = ""
@@ -46,8 +53,11 @@ class showdiff(osv.osv_memory):
_columns = {
'diff': fields.text('Diff'),
}
+
_defaults = {
'diff': _get_diff
}
+
showdiff()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/wiki/wizard/wiki_create_menu.py b/addons/wiki/wizard/wiki_create_menu.py
index 822e3a2aaf5..833ecb6436d 100644
--- a/addons/wiki/wizard/wiki_create_menu.py
+++ b/addons/wiki/wizard/wiki_create_menu.py
@@ -23,8 +23,10 @@ from osv import fields, osv
class wiki_create_menu(osv.osv_memory):
""" Create Menu """
+
_name = "wiki.create.menu"
_description = "Wizard Create Menu"
+
_columns = {
'menu_name': fields.char('Menu Name', size=256, select=True, required=True),
'menu_parent_id': fields.many2one('ir.ui.menu', 'Parent Menu', required=True),
@@ -32,6 +34,7 @@ class wiki_create_menu(osv.osv_memory):
}
def wiki_menu_create(self, cr, uid, ids, context):
+
""" Create Menu On the base of Group id and Action id
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@@ -39,23 +42,22 @@ class wiki_create_menu(osv.osv_memory):
"""
mod_obj = self.pool.get('ir.model.data')
- action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open')
- for group in self.pool.get('wiki.groups').browse(cr, uid, ids):
- for menu in self.browse(cr, uid, ids):
- menu_id = self.pool.get('ir.ui.menu').create(cr, uid, {
- 'name':menu.menu_name,
- 'parent_id':menu.menu_parent_id.id,
- 'icon': 'STOCK_DIALOG_QUESTION',
- 'action': 'ir.actions.act_window,'+ str(action_id)
- }, context)
- home = menu.page.id
- group_id = menu.id
- res = {
- 'home':home,
- }
- self.pool.get('wiki.groups').write(cr, uid, ids, res)
- self.pool.get('wiki.groups.link').create(cr, uid,
- {'group_id': group_id, 'action_id':menu_id})
+ action_id = mod_obj._get_id(cr, uid, 'wiki','action_view_wiki_wiki_page_open')
+ for menu in self.browse(cr, uid, ids):
+ menu_id = self.pool.get('ir.ui.menu').create(cr, uid, {
+ 'name':menu.menu_name,
+ 'parent_id':menu.menu_parent_id.id,
+ 'icon': 'STOCK_DIALOG_QUESTION',
+ 'action': 'ir.actions.act_window,'+ str(action_id)
+ }, context)
+ home = menu.page.id
+ group_id = menu.id
+ res = {
+ 'home':home,
+ }
+ self.pool.get('wiki.groups').write(cr, uid, ids, res)
+ self.pool.get('wiki.groups.link').create(cr, uid,
+ {'group_id': group_id, 'action_id': menu_id})
return {}
diff --git a/addons/wiki/wizard/wiki_create_menu_view.xml b/addons/wiki/wizard/wiki_create_menu_view.xml
index 20b666be906..e62f9647ecd 100644
--- a/addons/wiki/wizard/wiki_create_menu_view.xml
+++ b/addons/wiki/wizard/wiki_create_menu_view.xml
@@ -2,7 +2,7 @@
-
+
+
+