diff --git a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/WebSection_zGetDocumentValueList.xml b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/WebSection_zGetDocumentValueList.xml index 934fe4bdcb978edff648a62c38df5e8409795779..b9f5fdc92122f19b8f4732287cca8bbf4d95525a 100644 --- a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/WebSection_zGetDocumentValueList.xml +++ b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/WebSection_zGetDocumentValueList.xml @@ -43,6 +43,12 @@ <dictionary/> </value> </item> + <item> + <key> <string>all_versions</string> </key> + <value> + <dictionary/> + </value> + </item> <item> <key> <string>kw</string> </key> <value> @@ -75,6 +81,7 @@ <list> <string>language</string> <string>all_languages</string> +<string>all_versions</string> <string>validation_state</string> <string>kw</string> </list> @@ -101,6 +108,7 @@ <key> <string>arguments_src</string> </key> <value> <string>language\r\n all_languages\r\n +all_versions\r\n validation_state:list\r\n kw</string> </value> </item> @@ -118,7 +126,9 @@ kw</string> </value> </item> <item> <key> <string>connection_hook</string> </key> - <value> <string></string> </value> + <value> + <none/> + </value> </item> <item> <key> <string>connection_id</string> </key> @@ -142,13 +152,25 @@ kw</string> </value> <dtml-let query="buildSQLQuery(query=portal_catalog.getSecurityQuery(**kw), validation_state=validation_state, **kw)">\n \n +<dtml-comment>\n + the subquery is named catalog to prevent use another LEFT JOIN.\n +</dtml-comment>\n +\n SELECT\n - t.path AS path, t.uid AS uid, t.version AS version\n + catalog.path AS path, catalog.uid AS uid, catalog.modification_date,\n + catalog.reference, catalog.int_index, catalog.creation_date , catalog.title, \n + catalog.priority\n FROM\n (\n SELECT\n - catalog.uid, catalog.path, catalog.int_index,\n - catalog.reference, my_versioning.language, my_versioning.version\n + catalog.uid, catalog.path, catalog.int_index, catalog.modification_date,\n + catalog.reference, my_versioning.language, my_versioning.version,\n + catalog.creation_date, catalog.title\n + , MAX(CONCAT(CASE my_versioning.language\n + WHEN <dtml-sqlvar language type="string"> THEN \'3\'\n + WHEN \'en\' THEN \'2\'\n + ELSE \'1\' END,\n + my_versioning.version)) AS priority\n FROM\n <dtml-in prefix="table" expr="query[\'from_table_list\']">\n <dtml-var table_item> AS <dtml-var table_key>,\n @@ -157,29 +179,46 @@ FROM\n WHERE\n my_versioning.uid = catalog.uid\n <dtml-if "query[\'where_expression\']">\n - AND <dtml-var "query[\'where_expression\']">\n + AND <dtml-var "query[\'where_expression\']">\n </dtml-if>\n <dtml-if all_languages>\n +\n +<dtml-else>\n + AND my_versioning.language = <dtml-sqlvar language type="string"> \n +</dtml-if>\n + GROUP BY\n + catalog.uid\n + ORDER BY\n + priority DESC\n + ) AS catalog, versioning AS my_versioning\n + WHERE\n + catalog.uid = my_versioning.uid\n +<dtml-if all_versions>\n GROUP BY\n - catalog.reference\n - HAVING\n - MAX(CASE my_versioning.language WHEN <dtml-sqlvar language type="string"> THEN 3 WHEN \'en\' THEN 2 ELSE 1 END)\n - = CASE my_versioning.language WHEN <dtml-sqlvar language type="string"> THEN 3 WHEN \'en\' THEN 2 ELSE 1 END\n + catalog.uid\n <dtml-else>\n - AND my_versioning.language = <dtml-sqlvar language type="string">\n + GROUP BY\n + catalog.reference\n + HAVING \n + MAX(CONCAT(CASE my_versioning.language\n + WHEN <dtml-sqlvar language type="string"> THEN \'3\'\n + WHEN \'en\' THEN \'2\'\n + ELSE \'1\' END,\n + my_versioning.version)) = catalog.priority\n </dtml-if>\n - ) AS t\n -GROUP BY\n - t.reference\n - HAVING\n - MAX(t.version) = t.version\n -ORDER BY\n - t.int_index, t.reference\n + ORDER BY\n +<dtml-if "query[\'order_by_expression\']">\n + <dtml-var "query[\'order_by_expression\']">\n +<dtml-else>\n + catalog.int_index, catalog.reference\n +</dtml-if>\n +\n <dtml-if "query[\'limit_expression\']">\n LIMIT <dtml-var "query[\'limit_expression\']">\n <dtml-else>\n LIMIT 1000\n </dtml-if>\n +\n </dtml-let> ]]></string> </value> @@ -222,13 +261,25 @@ ORDER BY\n <dtml-let query="buildSQLQuery(query=portal_catalog.getSecurityQuery(**kw), validation_state=validation_state, **kw)">\n \n +<dtml-comment>\n + the subquery is named catalog to prevent use another LEFT JOIN.\n +</dtml-comment>\n +\n SELECT\n - t.path AS path, t.uid AS uid, t.version AS version\n + catalog.path AS path, catalog.uid AS uid, catalog.modification_date,\n + catalog.reference, catalog.int_index, catalog.creation_date , catalog.title, \n + catalog.priority\n FROM\n (\n SELECT\n - catalog.uid, catalog.path, catalog.int_index,\n - catalog.reference, my_versioning.language, my_versioning.version\n + catalog.uid, catalog.path, catalog.int_index, catalog.modification_date,\n + catalog.reference, my_versioning.language, my_versioning.version,\n + catalog.creation_date, catalog.title\n + , MAX(CONCAT(CASE my_versioning.language\n + WHEN <dtml-sqlvar language type="string"> THEN \'3\'\n + WHEN \'en\' THEN \'2\'\n + ELSE \'1\' END,\n + my_versioning.version)) AS priority\n FROM\n <dtml-in prefix="table" expr="query[\'from_table_list\']">\n <dtml-var table_item> AS <dtml-var table_key>,\n @@ -237,29 +288,46 @@ FROM\n WHERE\n my_versioning.uid = catalog.uid\n <dtml-if "query[\'where_expression\']">\n - AND <dtml-var "query[\'where_expression\']">\n + AND <dtml-var "query[\'where_expression\']">\n </dtml-if>\n <dtml-if all_languages>\n +\n +<dtml-else>\n + AND my_versioning.language = <dtml-sqlvar language type="string"> \n +</dtml-if>\n + GROUP BY\n + catalog.uid\n + ORDER BY\n + priority DESC\n + ) AS catalog, versioning AS my_versioning\n + WHERE\n + catalog.uid = my_versioning.uid\n +<dtml-if all_versions>\n GROUP BY\n - catalog.reference\n - HAVING\n - MAX(CASE my_versioning.language WHEN <dtml-sqlvar language type="string"> THEN 3 WHEN \'en\' THEN 2 ELSE 1 END)\n - = CASE my_versioning.language WHEN <dtml-sqlvar language type="string"> THEN 3 WHEN \'en\' THEN 2 ELSE 1 END\n + catalog.uid\n +<dtml-else>\n + GROUP BY\n + catalog.reference\n + HAVING \n + MAX(CONCAT(CASE my_versioning.language\n + WHEN <dtml-sqlvar language type="string"> THEN \'3\'\n + WHEN \'en\' THEN \'2\'\n + ELSE \'1\' END,\n + my_versioning.version)) = catalog.priority\n +</dtml-if>\n + ORDER BY\n +<dtml-if "query[\'order_by_expression\']">\n + <dtml-var "query[\'order_by_expression\']">\n <dtml-else>\n - AND my_versioning.language = <dtml-sqlvar language type="string">\n + catalog.int_index, catalog.reference\n </dtml-if>\n - ) AS t\n -GROUP BY\n - t.reference\n - HAVING\n - MAX(t.version) = t.version\n -ORDER BY\n - t.int_index, t.reference\n +\n <dtml-if "query[\'limit_expression\']">\n LIMIT <dtml-var "query[\'limit_expression\']">\n <dtml-else>\n LIMIT 1000\n </dtml-if>\n +\n </dtml-let> ]]></string> </value> diff --git a/bt5/erp5_web/bt/change_log b/bt5/erp5_web/bt/change_log index e3ccd4f31fbafaf1ef3baa50a2f5de1814e5e4a3..c1a928a5c3929309fe21b987f175393bc9575e86 100644 --- a/bt5/erp5_web/bt/change_log +++ b/bt5/erp5_web/bt/change_log @@ -1,3 +1,6 @@ +2008-07-15 rafael +* Updated WebSection_zGetDocumentValueList to support more params and fix some issues. + 2008-07-06 yo * Add effective date into Web Page. diff --git a/bt5/erp5_web/bt/revision b/bt5/erp5_web/bt/revision index 9251196df347629db89caa8098b7b3316365f168..0bd049a9634083bb649713736462c9db8aeb8228 100644 --- a/bt5/erp5_web/bt/revision +++ b/bt5/erp5_web/bt/revision @@ -1 +1 @@ -678 \ No newline at end of file +682 \ No newline at end of file