Skip to content

Commit

Permalink
[FIX] various improvement. Courtesy @dreispt review
Browse files Browse the repository at this point in the history
  • Loading branch information
legalsylvain committed Apr 18, 2017
1 parent 2fc9b61 commit 7a382a6
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 29 deletions.
2 changes: 1 addition & 1 deletion sql_export/demo/sql_export.xml
Expand Up @@ -12,6 +12,6 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
<field name="query">SELECT name, street FROM res_partner;</field>
</record>

<function model="sql.export" name="button_clean_check_request" eval="([ref('sql_export.sql_export_partner')])"/>
<function model="sql.export" name="button_validate_sql_expression" eval="([ref('sql_export.sql_export_partner')])"/>

</data></openerp>
6 changes: 4 additions & 2 deletions sql_export/sql_export_view.xml
Expand Up @@ -10,8 +10,8 @@
<form string="SQL export">
<sheet>
<header>
<button name="button_clean_check_request" type="object" states="draft"
string="Clean and Check Request" class="oe_highlight"/>
<button name="button_validate_sql_expression" type="object" states="draft"
string="Validate SQL Expression" class="oe_highlight"/>
<button name="button_set_draft" type="object" states="sql_valid"
string="Set to Draft" groups="sql_request_abstract.group_sql_request_manager"/>
<button name="export_sql_query" string="Execute Query" states="sql_valid" type="object" class="oe_highlight"
Expand Down Expand Up @@ -74,6 +74,7 @@
<record id="sql_parameter_view_form" model="ir.ui.view">
<field name="name">Sql_parameter_form_view</field>
<field name="model">ir.model.fields</field>
<field name="priority">100</field>
<field name="arch" type="xml">
<form string="SQL export">
</form>
Expand All @@ -83,6 +84,7 @@
<record id="sql_parameter_view_tree" model="ir.ui.view">
<field name="name">Sql_parameter_tree_view</field>
<field name="model">ir.model.fields</field>
<field name="priority">100</field>
<field name="arch" type="xml">
<tree string="SQL Parameter">
<field name="name"/>
Expand Down
27 changes: 6 additions & 21 deletions sql_export/tests/test_sql_query.py
@@ -1,23 +1,8 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Florian da Costa
# Copyright 2015 Akretion
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distnaributed 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# Copyright (C) 2015 Akretion (<http://www.akretion.com>)
# @author: Florian da Costa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import base64
from openerp.tests.common import TransactionCase
from openerp.exceptions import Warning as UserError
Expand Down Expand Up @@ -57,7 +42,7 @@ def test_prohibited_queries(self):
sql_export = self.sql_export_obj.create({
'name': 'test_prohibited',
'query': query})
sql_export.button_clean_check_request()
sql_export.button_validate_sql_expression()

def test_authorized_queries(self):
authorized_queries = [
Expand All @@ -68,7 +53,7 @@ def test_authorized_queries(self):
sql_export = self.sql_export_obj.create({
'name': 'test_authorized',
'query': query})
sql_export.button_clean_check_request()
sql_export.button_validate_sql_expression()
self.assertEqual(
sql_export.state, 'sql_valid',
"%s is a valid request" % (query))
11 changes: 7 additions & 4 deletions sql_request_abstract/models/sql_request_mixin.py
Expand Up @@ -14,7 +14,7 @@
from openerp.exceptions import Warning as UserError


class SQLRequestMixin(models.Model):
class SQLRequestMixin(models.AbstractModel):
_name = 'sql.request.mixin'

_clean_query_enabled = True
Expand Down Expand Up @@ -60,7 +60,7 @@ def _default_user_ids(self):

query = fields.Text(
string='Query', required=True, help="You can't use the following words"
": DELETE, DROP, CREATE, INSERT, ALTER, TRUNCATE, EXECUTE, UPDATE")
": DELETE, DROP, CREATE, INSERT, ALTER, TRUNCATE, EXECUTE, UPDATE.")

state = fields.Selection(
string='State', selection=STATE_SELECTION, default='draft',
Expand All @@ -82,7 +82,7 @@ def _default_user_ids(self):

# Action Section
@api.multi
def button_clean_check_request(self):
def button_validate_sql_expression(self):
for item in self:
if item._clean_query_enabled:
item._clean_query()
Expand Down Expand Up @@ -198,7 +198,10 @@ def _check_materialized_view_available(self):
self.env.cr.execute("SHOW server_version;")
res = self.env.cr.fetchone()[0].split('.')
minor_version = float('.'.join(res[:2]))
return minor_version >= 9.3
if minor_version < 9.3:
raise UserError(_(
"Materialized View requires PostgreSQL 9.3 or greater but"
" PostgreSQL %s is currently installed.") % (minor_version))

@api.multi
def _clean_query(self):
Expand Down
2 changes: 1 addition & 1 deletion sql_request_abstract/security/ir_module_category.xml
Expand Up @@ -3,7 +3,7 @@
<openerp><data>

<record model="ir.module.category" id="category_sql_abstract">
<field name="name">Sql Request</field>
<field name="name">SQL Request</field>
</record>

</data></openerp>

0 comments on commit 7a382a6

Please sign in to comment.