Modifs for module publication and upload on tinyerp.com

bzr revid: fp@tinyerp.com-2290bed8e0981d4057532fac944db20e355d3a0c
This commit is contained in:
Fabien Pinckaers 2007-05-03 20:04:34 +00:00
parent 1c81e5ccee
commit 52e00eeeac
4 changed files with 91 additions and 7 deletions

View File

@ -6,5 +6,12 @@
string="Publish your module"
model="ir.module.module"
name="base_module_publish.module_publish"/>
<wizard
string="Export module"
model="ir.module.module"
name="base.module.export"
id="wizard_base_module_export"/>
</data>
</terp>

View File

@ -27,3 +27,4 @@
##############################################################################
import base_module_publish
import wizard_module_export

View File

@ -31,6 +31,8 @@ import osv
import pooler
import urllib
import module_zip
intro_form = '''<?xml version="1.0"?>
<form string="Module publication">
<separator string="Publication information" colspan="4"/>
@ -174,9 +176,9 @@ def post_multipart(host, selector, fields, files):
L.append('Content-Disposition: form-data; name="%s"' % key)
L.append('')
L.append(value)
for (key,value) in files:
for (key,fname,value) in files:
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, key+'.png'))
L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, fname))
L.append('Content-Type: application/octet-stream')
L.append('')
L.append(value)
@ -203,10 +205,21 @@ def post_multipart(host, selector, fields, files):
def _upload(self, cr, uid, datas, context):
download = datas['form']['url_download'] or ''
if not download:
# Create a .ZIP file and send them online
# Set the download url to this .ZIP file
download = '/'
lpool = pooler.get_pool(cr.dbname)
res = module_zip.createzip(cr, uid, datas['id'], context, b64enc=False)
download = 'http://tinyerp.com/download/modules/'+res['module_filename']
result = post_multipart('www.tinyerp.com', '/mtree_upload.php',
[
('login',datas['form']['login']),
('password',datas['form']['password'])
], [
('module', res['module_filename'], res['module_file'])
])
# module_file & module_filename
pool = pooler.get_pool(cr.dbname)
mod = pool.get('ir.module.module').browse(cr, uid, datas['id'])
updata = {
'link_name': mod.shortdesc or '',
@ -232,7 +245,7 @@ def _upload(self, cr, uid, datas, context):
}
files = []
if datas['form']['image']:
files.append(('link_image', datas['form']['image']))
files.append(('link_image', 'link_image.png', datas['form']['image']))
result = post_multipart('www.tinyerp.com', '/index.php', updata.items(), files)
return {'result': result}

View File

@ -0,0 +1,63 @@
##############################################################################
#
# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import wizard
import pooler
import module_zip
finish_form ='''<?xml version="1.0"?>
<form string="Finish">
<separator string="Module successfully exported !" colspan="4"/>
<field name="module_file"/>
<newline/>
<field name="module_filename"/>
</form>
'''
finish_fields = {
'module_file': {'string': 'Module .zip file', 'type':'binary', 'readonly':True},
'module_filename': {'string': 'Filename', 'type':'char', 'size': 64, 'readonly':True},
}
class move_module_wizard(wizard.interface):
def createzip(self, cr, uid, data, context):
return module_zip.createzip(cr, uid, data['id'], context)
states = {
'init': {
'actions': [createzip],
'result': {
'type':'form',
'arch':finish_form,
'fields':finish_fields,
'state':[('end','Close')]
}
}
}
move_module_wizard('base.module.export')