[Erp5-report] r20302 - /erp5/trunk/products/ERP5Form/OOoChart.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Apr 4 11:06:55 CEST 2008
Author: nicolas
Date: Fri Apr 4 11:06:53 2008
New Revision: 20302
URL: http://svn.erp5.org?rev=20302&view=rev
Log:
Add render_odf Method on widget for OLE inclusion
Add scatter type graph
Modified:
erp5/trunk/products/ERP5Form/OOoChart.py
Modified: erp5/trunk/products/ERP5Form/OOoChart.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/OOoChart.py?rev=20302&r1=20301&r2=20302&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/OOoChart.py (original)
+++ erp5/trunk/products/ERP5Form/OOoChart.py Fri Apr 4 11:06:53 2008
@@ -119,6 +119,7 @@
items=[('bar', 'chart:bar'),
('circle', 'chart:circle'),
('line', 'chart:line'),
+ ('scatter', 'chart:scatter'),
],
size=0)
property_names.append('chart_type')
@@ -192,24 +193,24 @@
property_names.append('grid_size')
user_data_title = fields.StringField('user_data_title',
- title="User Column ID For X-axis",
+ title="Overide Labelled Column ID",
description=(
- "Column ID choose by user to define the X-axes."),
+ "Column Id choose by user to define the label."),
required=0)
property_names.append('user_data_title')
user_column_id_list = fields.ListTextAreaField('user_column_id_list',
- title="User Column ID List",
+ title="Overide Column Ids",
description=(
- "A list of columns ID choose by user to draw the graph."),
+ "A list of column Ids choose by user to draw the graph."),
default=[],
required=0)
property_names.append('user_column_id_list')
chart_stacked = fields.CheckBoxField('chart_stacked',
- title='Stacked Bars',
- description=('stacked bars or not'),
+ title='Stacked Data',
+ description=('stacked data or not'),
default=0,
required=0)
property_names.append('chart_stacked')
@@ -279,7 +280,7 @@
size=1)
property_names.append('lines_used')
-
+
#series-source=columns or rows
series_source = fields.ListField('series_source',
title='Series Source',
@@ -305,7 +306,7 @@
#data-label-number="none" value percentage
data_label_number = fields.ListField('data_label_number',
- title='Data-Label-Number',
+ title='Data Label Number',
description=(''),
default='none',
items=[('none', 'none'),
@@ -330,79 +331,12 @@
required=0)
property_names.append('data_label_symbol')
- def render_view(self, field, value, key=None, REQUEST=None, render_format='html'):
- """
- Render a Chart in read-only.
- """
- if REQUEST is None: REQUEST=get_request()
- return self.render(field, key, value, REQUEST, render_format=render_format)
-
- def render(self, field, key, value, REQUEST, render_format='html'):
-
- """
- Render a chart.
-
- render_format -- If the format is set to html, render the chart
- as a URL to ourselves with a png render_format
-
- If the format is set to 'raw', render the chart
- as raw XML.
-
- If the format is set to an image type (ex. png)
- render the chart using that format.
- """
-
- title = field.get_value('title')
- alternate_name = field.get_value('alternate_name')
-
- # Find the applicable context
- form = field.aq_parent
- here = getattr(form, 'aq_parent', REQUEST)
- # Update the render format based on REQUEST parameters
- render_format = getattr(REQUEST, 'render_format', render_format)
-
- UrlIconOOo='%s/misc_/ERP5OOo/OOo.png' % here.ERP5Site_getAbsoluteUrl()
- UrlIconPdf='%s/misc_/ERP5Form/PDF.png' % here.ERP5Site_getAbsoluteUrl()
-
- if render_format == 'html':
- field_absolute_url = '%s/%s/%s' % (here.absolute_url(),
- form.getId(),
- field.getId())
- css_class = field.get_value('css_class')
- format = field.get_value('image_format')
- if format == '':
- format='png'
- display = field.get_value('image_display')
- if format in STANDARD_IMAGE_FORMAT_LIST:
- main_content = '''<div class="OOoChartContent">
- <img class="%s" src="%s?render_format=%s&display=%s" title="%s" alt="%s"/">
- </div>''' % (css_class,
- field_absolute_url,
- format,
- display,
- title,
- alternate_name)
- return main_content
-
- if format == 'raw':
- main_content = '''<div class="OOoChartContent">
- <a href="%s?render_format=&display=%s"><img src="%s" alt="OOo"/></a></div>
- ''' % (field_absolute_url,
- display,
- UrlIconOOo)
- return main_content
- if format == 'pdf':
- main_content = '''<div class="OOoChartContent">
- <a href="%s?render_format=pdf&display=%s"><img src="%s" alt="PDF" /></a>
- </div>''' % (field_absolute_url,
- display,
- UrlIconPdf)
- return main_content
-
+
+ def getArgumentDict(self, field, REQUEST):
+ """ Build argument Dict """
def stringBoolean(value):
return str(bool(value)).lower()
- #Build the parameters
extra_argument_dict = dict(
chart_form_id = field.get_value('form_id'),
chart_field_id = field.get_value('field_id'),
@@ -435,10 +369,96 @@
for k, v in extra_argument_dict.items():
if REQUEST.get(k) is None:
REQUEST.form[k] = v
+ return extra_argument_dict
+
+
+ def render_view(self, field, value, key=None, REQUEST=None, render_format='html'):
+ """
+ Render a Chart in read-only.
+ """
+ if REQUEST is None: REQUEST=get_request()
+ return self.render(field, key, value, REQUEST, render_format=render_format)
+
+
+ def render_odf(self, field, key, value, REQUEST, render_format='ooo'):
+ """
+ Render a Chart for ODT Style.
+ """
+ form = field.aq_parent
+ here = getattr(form, 'aq_parent', REQUEST)
+ extra_context = self.getArgumentDict(field, here.REQUEST)
+ content = '''
+ <office:include style="inline-graphic" path="%s/ERP5Site_buildChart" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed"/>
+ ''' % here.getPath()
+ return content
+
+
+ def render(self, field, key, value, REQUEST, render_format='html'):
+
+ """
+ Render a chart.
+
+ render_format -- If the format is set to html, render the chart
+ as a URL to ourselves with a png render_format
+
+ If the format is set to 'raw', render the chart
+ as raw XML.
+
+ If the format is set to an image type (ex. png)
+ render the chart using that format.
+ """
+
+ title = field.get_value('title')
+ alternate_name = field.get_value('alternate_name')
+
+ # Find the applicable context
+ form = field.aq_parent
+ here = getattr(form, 'aq_parent', REQUEST)
+ # Update the render format based on REQUEST parameters
+ render_format = getattr(REQUEST, 'render_format', render_format)
+ UrlIconOOo='%s/misc_/ERP5OOo/OOo.png' % here.ERP5Site_getAbsoluteUrl()
+ UrlIconPdf='%s/misc_/ERP5Form/PDF.png' % here.ERP5Site_getAbsoluteUrl()
+ if render_format == 'html':
+ field_absolute_url = '%s/%s/%s' % (here.absolute_url(),
+ form.getId(),
+ field.getId())
+ css_class = field.get_value('css_class')
+ format = field.get_value('image_format') or 'png'
+ display = field.get_value('image_display')
+ if format in STANDARD_IMAGE_FORMAT_LIST:
+ main_content = '''<div class="OOoChartContent">
+ <img class="%s" src="%s?render_format=%s&display=%s" title="%s" alt="%s"/">
+ </div>''' % (css_class,
+ field_absolute_url,
+ format,
+ display,
+ title,
+ alternate_name)
+ return main_content
+ elif format == 'raw':
+ main_content = '''<div class="OOoChartContent">
+ <a href="%s?render_format=&display=%s"><img src="%s" alt="OOo"/></a></div>
+ ''' % (field_absolute_url,
+ display,
+ UrlIconOOo)
+ return main_content
+ elif format == 'pdf':
+ main_content = '''<div class="OOoChartContent">
+ <a href="%s?render_format=pdf&display=%s"><img src="%s" alt="PDF" /></a>
+ </div>''' % (field_absolute_url,
+ display,
+ UrlIconPdf)
+ return main_content
+ else:
+ raise NotImplementedError, 'Format: %s not handled' % format
+
+ extra_context = self.getArgumentDict(field, REQUEST)
method_id = field.get_value('ooo_template')
+
# Find the page template
ooo_template = getattr(here, method_id)
+
# Render the chart
return ooo_template(format=render_format)
@@ -456,7 +476,5 @@
class OOoChart(ZMIField):
meta_type = "OOoChart"
-
widget = OOoChartWidgetInstance
validator = OOoChartValidatorInstance
-
More information about the Erp5-report
mailing list