[IMP]API Break : no ox- forced namespace anymore

This commit is contained in:
Fabien BOURGEOIS 2020-04-24 11:51:34 +02:00
parent 82e5f1990d
commit 4744b46ba8
2 changed files with 51 additions and 51 deletions

View File

@ -39,37 +39,37 @@
; XML helpers functions and macros
(defn ox-odoo [&rest args] (xmlroot (xmln "odoo" {} #*args)))
(defn ox-data [&rest args] (xmln "data" {} #*args))
(defn ox-record [&rest args] (xmln "record" #*args))
(defn ox-form [&rest args] (xmln "form" #*args))
(defn ox-tree [&rest args] (xmln "tree" #*args))
(defn ox-search [&rest args] (xmln "search" #*args))
(defn ox-act-window [&rest args] (xmln "act_window" #*args))
(defn ox-act-window-model [model attrs]
(defn odoo [&rest args] (xmlroot (xmln "odoo" {} #*args)))
(defn data [&rest args] (xmln "data" {} #*args))
(defn record [&rest args] (xmln "record" #*args))
(defn form [&rest args] (xmln "form" #*args))
(defn tree [&rest args] (xmln "tree" #*args))
(defn search [&rest args] (xmln "search" #*args))
(defn act-window [&rest args] (xmln "act_window" #*args))
(defn act-window-model [model attrs]
" Build new act_window from model and args"
(setv model_und (.replace model "." "_")
model_cap (.join " " (lfor w (.split model ".") (.capitalize w)))
xmlid f"{model_und}_view_action"
name f"{model_cap} Action")
(.update attrs {"id" xmlid "name" name "res_model" model})
(ox-act-window attrs))
(defn ox-menuitem [&rest args] (xmln "menuitem" #*args))
(defn ox-menuitem-model [model attrs]
(act-window attrs))
(defn menuitem [&rest args] (xmln "menuitem" #*args))
(defn menuitem-model [model attrs]
" Build new menuitem from model and attrs"
(setv model_und (.replace model "." "_")
actionid f"{model_und}_view_action"
xmlid f"{model_und}_menu")
(.update attrs {"id" xmlid "action" actionid})
(ox-menuitem attrs))
(defn ox-group [&rest args] (xmln "group" #*args))
(defn ox-header [&rest args] (xmln "header" #*args))
(defn ox-footer [&rest args] (xmln "footer" #*args))
(defn ox-sheet [&rest args] (xmln "sheet" #*args))
(defn ox-button [&rest args] (xmln "button" #*args))
(defn ox-p [&rest args] (xmln "p" #*args))
(defn ox-field [&rest args]
"Special ox-field allowing mangling name attribute"
(menuitem attrs))
(defn group [&rest args] (xmln "group" #*args))
(defn header [&rest args] (xmln "header" #*args))
(defn footer [&rest args] (xmln "footer" #*args))
(defn sheet [&rest args] (xmln "sheet" #*args))
(defn button [&rest args] (xmln "button" #*args))
(defn p [&rest args] (xmln "p" #*args))
(defn field [&rest args]
"Special field allowing mangling name attribute"
(setv attrs (nth args 0))
(when (and (instance? dict attrs) (in "name" attrs))
(assoc attrs "name" (mangle (get attrs "name")))
@ -78,55 +78,55 @@
(setv args (tuple args)))
(xmln "field" #*args))
(defn ox-field-name [name] (ox-field {"name" "name"} [name]))
(defn ox-field-model [model] (ox-field {"name" "model"} [model]))
(defn ox-field-inherit [xmlid] (ox-field {"name" "inherit_id" "ref" xmlid} []))
(defn ox-field-arch [&rest args] (ox-field {"name" "arch" "type" "xml"} #*args))
(defn field-name [name] (field {"name" "name"} [name]))
(defn field-model [model] (field {"name" "model"} [model]))
(defn field-inherit [xmlid] (field {"name" "inherit_id" "ref" xmlid} []))
(defn field-arch [&rest args] (field {"name" "arch" "type" "xml"} #*args))
(defn ox-view [xmlid children] (ox-record {"id" xmlid "model" "ir.ui.view"} children))
(defn ox-view-def [xmlid name model arch]
(defn view [xmlid children] (record {"id" xmlid "model" "ir.ui.view"} children))
(defn view-def [xmlid name model arch]
"View and first fields simplification with record xmlid, name, targeted model"
(ox-view xmlid
[(ox-field-name name)
(ox-field-model model)
(ox-field-arch arch)]))
(defn ox-view-new[view_type model arch]
(view xmlid
[(field-name name)
(field-model model)
(field-arch arch)]))
(defn view-new[view_type model arch]
"View : new view definition, based on type (form, tree, ...) and model ID"
(setv model_und (.replace model "." "_")
model_cap (.join " " (lfor w (.split model ".") (.capitalize w)))
xmlid f"{model_und}_view_{view_type}"
name f"{model_cap} {(.capitalize view_type)}")
(ox-view-def :xmlid xmlid :name name :model model :arch arch))
(defn ox-view-inherit [name model inherit arch]
(view-def :xmlid xmlid :name name :model model :arch arch))
(defn view-inherit [name model inherit arch]
"Inherited View simplification with name of the record, xmlid for model and
inherited view"
(setv module (get (.split __name__ ".") 2)
inherited (get (.split inherit ".") 1)
xmlid f"{inherited}_inherit_{module}")
(ox-view xmlid
[(ox-field-name name)
(ox-field-model model)
(ox-field-inherit inherit)
(ox-field-arch arch)]))
(view xmlid
[(field-name name)
(field-model model)
(field-inherit inherit)
(field-arch arch)]))
(defn ox-actions-server-code [xmlid name modelref code]
(defn actions-server-code [xmlid name modelref code]
"Server actions of type code"
(ox-record {"id" xmlid "model" "ir.actions.server"}
[(ox-field-name name)
(ox-field {"name" "model_id" "ref" modelref} [])
(ox-field {"name" "state"} ["code"])
(ox-field {"name" "code"} [code])]))
(record {"id" xmlid "model" "ir.actions.server"}
[(field-name name)
(field {"name" "model_id" "ref" modelref} [])
(field {"name" "state"} ["code"])
(field {"name" "code"} [code])]))
(defn ox-client-action-multi [xmlid name model action]
(defn client-action-multi [xmlid name model action]
"Client action multi (ir.values), with own xmlid, name, targeted model and
action"
(setv action f"'ir.actions.server,%d'%{action}")
(ox-record {"id" xmlid "model" "ir.values"}
[(ox-field-name name)
(ox-field {"name" "key2" "eval" "'client_action_multi'"} [])
(ox-field {"name" "model" "eval" (+ "'" model "'")} [])
(ox-field {"name" "value" "eval" action})]))
(record {"id" xmlid "model" "ir.values"}
[(field-name name)
(field {"name" "key2" "eval" "'client_action_multi'"} [])
(field {"name" "model" "eval" (+ "'" model "'")} [])
(field {"name" "value" "eval" action})]))
; Odoo Backend macros

View File

@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="hy_odoo",
version="0.2.2",
version="0.3.0",
packages=find_packages(),
package_data={
'hy_odoo': ['*.hy'],