Commit db4fd758 authored by Jérome Perrin's avatar Jérome Perrin

dms: remove unused code from DocumentManagement extension

parent 11daa5dd
......@@ -25,67 +25,8 @@
#
##############################################################################
import zipfile, cStringIO, re
import six.moves.xmlrpc_client, base64
from Products.CMFCore.utils import getToolByName
import re
def extractContent(data):
"""
extract text content from ODF data
directly by unzipping (no need for oood here)
"""
# XXX probably not used - to really get text content it should
# strip xml too
cs = cStringIO.StringIO()
cs.write(data)
try:
z = zipfile.ZipFile(cs)
except zipfile.BadZipfile:
cs.close()
return ''
s = z.read('content.xml')
cs.close()
z.close()
return s
###### XXX these methods repeat what is in OOoDocument class
# maybe redundant, but we need to access them from Script (Python)
def convertToOdf(self, name, data):
"""
convert data into ODF format
to be used in ingestion when we don't yet have an ERP5 object
to work with (and we for example have to figure out portal_type)
"""
sp = mkProxy(self)
kw = sp.run_convert(name, base64.encodebytes(data).decode())
odf = base64.decodebytes(kw['data'].encode())
return odf
def mkProxy(self):
pref = getToolByName(self,'portal_preferences')
adr = pref.getPreferredDmsOoodocServerAddress()
nr = pref.getPreferredDmsOoodocServerPortNumber()
if adr is None or nr is None:
raise Exception('you should set conversion server coordinates in preferences')
sp = six.moves.xmlrpc_client.ServerProxy('http://%s:%d' % (adr,nr), allow_none=True)
return sp
def generateFile(self, name, data, format): # pylint: disable=redefined-builtin
sp = mkProxy(self)
kw = sp.run_generate(name, data, None, format)
res = base64.decodebytes(kw['data'].encode())
return res
def getAttrFromFilename(self, fname):
"""
parse file name using regexp specified in preferences
"""
rx_parse = re.compile(self.portal_preferences.getPreferredDmsFilenameRegexp())
m = rx_parse.match(fname)
if m is None:
return {}
return m.groupdict()
def getLastWorkflowDate(self, state_name='simulation_state', state=('released','public')):
'''we can make something more generic out of it
......@@ -93,8 +34,10 @@ def getLastWorkflowDate(self, state_name='simulation_state', state=('released','
if not hasattr(self, 'workflow_history'):
return None
for wflow in self.workflow_history.values():
if wflow is None or len(wflow) == 0: continue # empty history
if wflow[0].get(state_name) is None: continue # not the right one
if wflow is None or len(wflow) == 0:
continue # empty history
if wflow[0].get(state_name) is None:
continue # not the right one
for i in range(len(wflow)):
ch = wflow[-1-i]
act = ch.get('action', '')
......@@ -105,16 +48,6 @@ def getLastWorkflowDate(self, state_name='simulation_state', state=('released','
#############################################################################
# Mail management
def findAddress(txt):
"""
find email address in a string
"""
validchars = r'0-9A-Za-z.\-_'
r=re.compile('[%s]+@[%s]+' % (validchars,validchars))
m=r.search(txt)
return m and m.group()
def extractParams(txt):
"""
extract parameters given in mail body
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment