odoo 9 - how to restrict one2many to not show a form view - odoo-9

I have a many2many, which is using the one2many widget.
I set mode="tree" and am using editable="bottom".
This works as expected in edit mode, however when in view mode - if the user clicks on a line it opens the line in a form view - how do i prevent this?
I either want nothing to happen, or to allow user to click on one of the _id items on the line.
Either way, clicking on the line should not open the record in a form view.
<field name="test_ids" widget="one2many" nolabel="1" mode="tree">
<tree editable="bottom">
<field name="partner_id"/>
<field name="another_field"/>
</tree>
</field>

Related

Hide Create and Export All button but show Import button in Odoo13 tree view

By default Tree view in Odoo has Create, Import and Export All button showing on top.
How do I hide them based on User groups?
Also I should be able to hide Create button but without hiding Import button.
You can hide the buttons like so:
<tree create="false" edit="false" delete="false" duplicate="false">
To do this per user group, create an inherited view and specify the group in the inherit view like so:
<record model="ir.ui.view" id="view_model_name_tree_inherit">
<field name="name">model.name.tree.inherit</field>
<field name="model">model.name</field>
<field name="type">tree</field>
<field name="inherit_id" ref="module_name.tree_name" />
<field name="groups_id" eval="[(4, ref('module_name.group_name'))]"/>
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="create">false</attribute>
<attribute name="edit">false</attribute>
<attribute name="delete">false</attribute>
<attribute name="duplicate">false</attribute>
</tree>
</field>
</record>
Unfortunately the Create and Import buttons are both linked to the create attribute.
To disable the "Export" button, you will need to install a module as this is not supported on Odoo default. See this module
You can check following link for solution of your problem. web_disable_export_group
If you want to hide Export All button on the top-up header and next to the create method for some views only then follow below step.
<tree string="Account" export_xlsx="false" create="false">
But if you're using the web_disable_export_group and Did you uncheck the Export Button security group then for that user they are not able to see that Export All button for any views.Reference

Customize Search Window Odoo 10

I'm busy creating a custom module for Odoo 10.
Part of it is to make sure Products are displayed with a default Group By in the Search Window.
I can't seem to find the view/template where that could be organised.
Has anybody an idea?
Thanks in advance.
Say you want to group by categ_id. Then all you need to do is add a new filter like this:
<filter name="groupby_categ_id"
string="Internal Category"
context="{'group_by': 'categ_id'}"/>
And you will have to add this filter by default with the action context:
<field name="context">
{'search_default_groupby_categ_id': 1}
</field>
edit:
You can also pass this as a context of a field as follows:
<field name="product_tmpl_id"
context={'search_default_groupby_categ_id': 1}
/>
And then when clicking on Search more the filter will be on by default.

Adding menu types with custom url parameters to component in Joomla 3

I'm having problems adding custom url parameters to my component menu. My component displays different data on the same view depending on which value from predetermined set is passed via custom GET parameter. For example, let's say these two urls are the only valid variants of the same view:
?option=com_mycomponent&view=myview&option=hello
?option=com_mycomponent&view=myview&option=world
How can I add these two urls as separate menu types to the component?
you need to change your default.xml file in such a way that when you create menu it will ask you for the optional parameter.
The default.xml file located at component/your_component/views/yourview/tmpl/default.xml
The code will look like as below
<fields name="request">
<fieldset name="request">
<field name="option" type="hidden"
label=""
required=""
description=""
default="default-value"
/>
</fieldset>
</fields>
For reference check components/com_content/views/article/tmpl/default.xml file
You can use External URL.
Create a new menu and select External URL from Menu Item Type > System Links. Add your urls in the Link field.
I hope I was of any help.

How to set parameters in menu Item Joomla Component

Following is my code.
<fields name="request">
<fieldset name="request">
<field name="format" type="list" label="COM_CPS_FIELD_FORMAT"
description="COM_CPS_FIELD_FORMAT_DESC" class="small"
default="raw"
>
<option value="">COM_CPS_FORMAT_HTML</option>
<option value="raw">COM_CPS_FORMAT_RAW</option>
</field>
</fieldset>
</fields>
When I save the menu with 2nd option it save the url like this index.php?option=com_cps&view=webservice&format=raw but when I save the menu with first option it does not remove the &format=raw If any one can help me out It would be great.
Default is defined as what to save if nothing is posted. It works like a Joomla input filter in that it changes what is actually saved as opposed to validation which stops the process and never posts. Therefore you cannot save nothing, since it will always be replaced by the default. Therefore if you want to be able to save blank you must not have a default.
What you may be looking for is a preset, which is a preselected value that can be unselected. Presets and defaults are totally different things although on the surface they appear similar.

Joomla component not appearing in the menu item types

I just followed the joomla tutorials on how to create the "perfect" MVC joomla component. However, my problem is that I don't know yet how to assign it to a menu. I thought that my component would then just show up when I select a "menu item type", but my component is not on this list. I've made some research on Google, but I cannot find the answer... Do I have to create a metadata.xml file or something similar ?
Thanks in advance for your answers !!
To create "views" for your component, you have to create some xml files.
Inside the templates folder in the frontend part of your component (usually something like /components/com_yourcomponent/views/someview/tmpl), if you had a template named default.php and form.php, you can create a default.xml file and a form.xml file to make these menu items available from the administrator.
You can take a look at other components to see the structure of these xml files, but what you should put inside is:
1) A name and a description for four view
2) The params the user will be able to change from the administrator (it works like module/plugin params)
3) You can also set "hidden" request variables for that menu item. It means that those vars will be added to the request in that particular menu item, but the user won't be able to change its value.
Here's a complete example for a component (Joomla 1.7):
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_AGMTAGS_TAG_VIEW_DEFAULT_TITLE">
<message>COM_AGMTAGS_TAG_VIEW_DEFAULT_DESC</message>
</layout>
<fields name="request" addfieldpath="/administrator/components/com_agmtags/models/fields">
<fieldset name="request">
<field name="tag_id" type="agmtag"
label="COM_AGMTAGS_TAG_FIELD_NAME_LABEL"
description="COM_AGMTAGS_TAG_FIELD_NAME_DESC"
/>
</fieldset>
</fields>
<fields name="params">
<fieldset name="basic" label="COM_AGMTAGS_TAG_OPTIONS">
<field name="layout_type" type="hidden" default="blog" />
<field name="show_tag_name" type="list"
label="COM_AGMTAGS_SHOW_TAG_NAME"
description="COM_AGMTAGS_SHOW_TAG_NAME_DESC"
>
<option value="">JGLOBAL_USE_GLOBAL</option>
<option value="0">JHIDE</option>
<option value="1">JSHOW</option>
</field>
<field name="show_tag_description" type="list"
description="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_DESC"
label="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_LABEL"
>
<option value="">JGLOBAL_USE_GLOBAL</option>
<option value="0">JHIDE</option>
<option value="1">JSHOW</option>
</field>
<field name="items_per_page" type="text" default="" />
<field name="container_class" type="text" default="agmtags-list" />
</fieldset>
</fields>
</metadata>
I hope it helped!
If you simply want to add the view link to the list create a xml file called default.xml inside the com_yourcomponent/views/yourviewname/tmpl/
The xml code below takes two language strings used to display your menu item link in the list
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_YOURCOMPONENT_FRONPAGE_TITLE">
<message>COM_YOURCOMPONENT_FRONPAGE_MSG</message>
</layout>
</metadata>
save the file and the link should appear in the list of menu items
Apparently, you also need the administration menu tags in your installation XML file.
http://forum.joomla.org/viewtopic.php?p=706714
This worked for me
<administration>
<menu>COM_COMPONET</menu>
<submenu>
etc...
</submenu>
Think this is what Panayiotis was trying to say
Additionally there is also another catch.
In the installation XML file of the component,
in the section, the tags must
be present, even if you do not need the menu.
If these are missing, then you'll never be given
the option to add this component to a menu item,
because the type wont be there :-)
In additional, your alternative view file names MUST NOT be written with underscores.
table_catalog.xml
table_catalog.php
table_catalog_item.php
didn't work - there wasn't new option in "menu item type" list. But
tablecatalog.xml
tablecatalog.php
tablecatalog_item.php
file names work perfectly. I've lost an hour revealing a problem.

Resources