Customize Search Window Odoo 10 - 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.

Related

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

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>

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 use "editor" field type in joomla "repeatable" form field?

I am developing a module for Joomla 3.3.6. I want to use "editor" field type in "repeatable" field in the xml file. The code I am using is as follows:
<field
name="fpssibtos_img1subs"
type="Repeatable"
icon="list"
label="GLOBAL_SUBS"
description="GLOBAL_SUBS_DESC"
default="{'fpssibtos_img1sub':['test']}">
<fields name="params">
<fieldset hidden="true" name="fpssibtos_img1subs_modal" repeat="true">
<field
name="fpssibtos_img1sub"
default="test"
type="editor"
label="GLOBAL_SUB"
description="GLOBAL_SUB_DESC"
filter="safehtml"/>
</fieldset>
</fields>
</field>
The problem is the editor is not editable, I mean you cannot type anything in it.
I am using CKEditor, I changed it to TinyMCE and others ,but the problem persists. I know that repeatable form field is still buggy ,but I thought some of you guys might know the fix to this particular problem.
In case anyone else comes across this problem, the repeatable form fields only support simple field types. This is apparently due to Joomla not having a simple way for scripts to interact.
Comment on the issue from one of the devs here and here.

Joomla 2.5 registration custom field as dropdown?

I added some extra field to Joomla 2.5. Everything working great. For example, I added "country" to registration.xml (components/com_users/models/forms):
<field name="country" type="text"
description="COM_USERS_REGISTER_COUNTRY_DESC"
filter="string"
label="COM_USERS_REGISTRATION_COUNTRY"
required="true"
size="40"
/>
But how to add a dropdown list? I want to give my users ability to select country from the list.
And similar question: I also added birthday field. How to add jQuery datepicker here?
In my opinion you should not edit Joomla core files. This could break your installation in future updates.
Although I don't recommend it, take a look at Standard form field and parameter types # Joomla Docs. At that page, see list for your dropdown list and calendar for your date.
Another way of adding extra fields would be with a extension. Check out:
ExtendedReg (commercial)
Community Builder
Joomla 2.5 has a 'profile' plugin to handle extra registration fields. You can edit that or write your own plugin. This avoids editing core files. Example of a country list using a database call (your database must have the table of counties). My table has country codes in two and three letters and I want to save the 3 letter code (example CAD).
<field
name="country"
type="sql"
id="country"
description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC"
filter="string"
label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL"
message="PLG_USER_PROFILE_FIELD_COUNTRY_MESSAGE"
query="SELECT country_3_code as value, country_name as country FROM #__mycomponent_country
ORDER by country"
/>
For birthday use:
<field
name="birthday"
type="calendar"
label="Birth Day"
description="My Desc."
/>
And for country use the SQL as mentioned by #Gord Fisch

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