Browse Source

[RMV] : Apr 17: Module Removed

16.0
AjmalCybro 2 weeks ago
parent
commit
efd9834354
  1. 46
      odoo_fb_insta_product_data_feed/README.rst
  2. 22
      odoo_fb_insta_product_data_feed/__init__.py
  3. 54
      odoo_fb_insta_product_data_feed/__manifest__.py
  4. 22
      odoo_fb_insta_product_data_feed/controllers/__init__.py
  5. 95
      odoo_fb_insta_product_data_feed/controllers/odoo_fb_insta_product_data_feed.py
  6. 6
      odoo_fb_insta_product_data_feed/doc/RELEASE_NOTES.md
  7. 24
      odoo_fb_insta_product_data_feed/models/__init__.py
  8. 40
      odoo_fb_insta_product_data_feed/models/field_column_value.py
  9. 242
      odoo_fb_insta_product_data_feed/models/product_data_feed.py
  10. 60
      odoo_fb_insta_product_data_feed/models/product_data_feed_columns.py
  11. 4
      odoo_fb_insta_product_data_feed/security/ir.model.access.csv
  12. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/check.png
  13. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/chevron.png
  14. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/cogs.png
  15. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/consultation.png
  16. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/ecom-black.png
  17. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/education-black.png
  18. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/hotel-black.png
  19. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/license.png
  20. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/lifebuoy.png
  21. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/manufacturing-black.png
  22. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/pos-black.png
  23. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/puzzle.png
  24. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/restaurant-black.png
  25. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/service-black.png
  26. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/trading-black.png
  27. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/training.png
  28. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/update.png
  29. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/user.png
  30. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/icons/wrench.png
  31. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/categories.png
  32. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/check-box.png
  33. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/compass.png
  34. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/corporate.png
  35. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/customer-support.png
  36. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/cybrosys-logo.png
  37. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/features.png
  38. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/logo.png
  39. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/pictures.png
  40. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/pie-chart.png
  41. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/right-arrow.png
  42. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/star.png
  43. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/support.png
  44. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/misc/whatsapp.png
  45. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/1.jpg
  46. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/2.jpg
  47. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/3.png
  48. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/4.png
  49. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/5.jpg
  50. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/modules/7.jpg
  51. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_models.png
  52. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_view.png
  53. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb3.png
  54. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb4.png
  55. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb5.png
  56. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb6.png
  57. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb7.png
  58. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb8.png
  59. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb9.png
  60. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat1.png
  61. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat2.png
  62. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_item.png
  63. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model.png
  64. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model1.png
  65. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_tree_view.png
  66. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/hero.gif
  67. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img101.png
  68. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img102.png
  69. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img22.png
  70. BIN
      odoo_fb_insta_product_data_feed/static/description/assets/screenshots/website.png
  71. BIN
      odoo_fb_insta_product_data_feed/static/description/banner.png
  72. BIN
      odoo_fb_insta_product_data_feed/static/description/icon.png
  73. 695
      odoo_fb_insta_product_data_feed/static/description/index.html
  74. 19
      odoo_fb_insta_product_data_feed/views/field_column_value_views.xml
  75. 49
      odoo_fb_insta_product_data_feed/views/product_data_feed_columns_views.xml
  76. 111
      odoo_fb_insta_product_data_feed/views/product_data_feed_views.xml

46
odoo_fb_insta_product_data_feed/README.rst

@ -1,46 +0,0 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Product Data Feed Generation
============================
Generating a Product Catalog Feeds Sharing Link
Configuration
=============
* No additional configurations needed
License
-------
Affero General Public License v3.0 (AGPL v3)
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
* Developer: (V16) Junaidul Ansar M, Contact : odoo@cybrosys.com
Contacts
--------
* Mail Contact : odoo@cybrosys.com
* Website : https://cybrosys.com
Bug Tracker
-----------
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Maintainer
==========
.. image:: https://cybrosys.com/images/logo.png
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
For support and more information, please visit `Our Website <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

22
odoo_fb_insta_product_data_feed/__init__.py

@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import controllers, models

54
odoo_fb_insta_product_data_feed/__manifest__.py

@ -1,54 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
{
'name': 'Product Data Feed Generation',
'version': '16.0.1.0.0',
'category': 'eCommerce',
'summary': 'Help to create the catalog for promoting your sale',
'description': 'Using this module we have to promote and market our sales'
' through facebook and instagram for using the catalog of '
'our product. Many of the businesses sell or advertise '
'their product through facebook and instagram. So they'
' need a catalog that contains the information about your '
'products. In this module generate the product data feed '
'file for the facebook commerce manager in automatic '
'mode(by URL). After adding the data feed URL on facebook '
'you will be able to promote your product in sale channels ,'
' on facebook shops, instagram shopping, with dynamic ads,'
' and more.',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ['website_sale', 'product', 'mail', 'stock'],
'data': [
'security/ir.model.access.csv',
'views/product_data_feed_views.xml',
'views/product_data_feed_columns_views.xml',
'views/field_column_value_views.xml',
],
'images': ['static/description/banner.png'],
'license': 'AGPL-3',
'installable': True,
'application': False,
'auto_install': False
}

22
odoo_fb_insta_product_data_feed/controllers/__init__.py

@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import odoo_fb_insta_product_data_feed

95
odoo_fb_insta_product_data_feed/controllers/odoo_fb_insta_product_data_feed.py

@ -1,95 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
import csv
from six import StringIO
from odoo import http
from odoo.http import request
class ProductData(http.Controller):
"""This controller handle for downloading the catalog csv file"""
def generate_formatted_file_content(self, columns, item_filter, record):
"""Generating the file content"""
# Apply the filter criteria and fetch the relevant items
filtered_items = request.env[record.used_model].search(item_filter)
formatted_rows = []
# Iterate over each item and generate a row of values
for item in filtered_items:
row = []
for column in columns:
if column.type == 'Model Field':
# Access the field value directly
value = getattr(item, column.value_id.name, '')
elif column.type == 'Special':
if column.special_type == 'product_availability':
# Access the product's on-hand quantity
on_hand_qty = item.qty_available
# Set value based on on-hand quantity
if on_hand_qty == 0:
value = 'out of stock'
else:
value = 'in stock'
elif column.special_type == 'qty':
value = item.qty_available
elif column.special_type == 'product_price':
value = item.standard_price
elif column.special_type == 'disc_price':
value = item.list_price
elif column.special_type == 'price_without_tax':
value = item.list_price
elif column.special_type == 'price_currency':
value = self.currency_id.name
elif column.type == 'Text':
value = column.value
elif column.type == 'Value':
value = column.field_value_id.column_name
else:
value = column.value
row.append(value)
formatted_rows.append(row)
return formatted_rows
@http.route(['/product_data/<int:id>/<name>',
'/product_data/<name>'
], type="http",
auth='public')
def product_data(self, id, name):
"""Making the product data into a CSV formate."""
record = request.env['product.data.feed'].sudo().browse(id)
column_ids = record.feed_columns_line_ids
item_filter = eval(record.item_filter) if record.item_filter else []
formatted_file_content = self.generate_formatted_file_content(
column_ids, item_filter, record)
csv_content = StringIO()
csv_writer = csv.writer(csv_content)
column_header = [column.name for column in column_ids]
csv_writer.writerow(column_header)
for row in formatted_file_content:
csv_writer.writerow(row)
# Get CSV content as a string
csv_string = csv_content.getvalue()
csv_content.close()
headers = [
('Content-Type', 'text/csv'),
('Content-Disposition', http.content_disposition(name + '.csv')),
]
return request.make_response(csv_string, headers=headers)

6
odoo_fb_insta_product_data_feed/doc/RELEASE_NOTES.md

@ -1,6 +0,0 @@
## Module <odoo_fb_insta_product_data_feed>
#### 22.03.2024
#### Version 16.0.1.0.0
#### ADD
- Initial Commit for Product Data Feed Generation

24
odoo_fb_insta_product_data_feed/models/__init__.py

@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import field_column_value
from . import product_data_feed
from . import product_data_feed_columns

40
odoo_fb_insta_product_data_feed/models/field_column_value.py

@ -1,40 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import fields, models
class FieldColumnValue(models.Model):
"""Model for storing field column values.
This class represents field column values used in a product data feed.
It is used to define the mapping of column names to their corresponding
values.
"""
_name = 'field.column.value'
_description = 'Field Column Value'
_rec_name = 'value'
feed_id = fields.Many2one('product.data.feed',
string='Feed Name', help='Feed Name')
column_name = fields.Char(string='Column Name',
help='Enter the column name.')
value = fields.Char(string='Value', help='Value of the column name.')

242
odoo_fb_insta_product_data_feed/models/product_data_feed.py

@ -1,242 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
import base64
import secrets
import string
import csv
from io import StringIO
from odoo import api, fields, models
class ProductDataFeed(models.Model):
"""Data feed model for managing and generating product data feeds.
This class represents a product data feed, which can be used to export
product information in a specific format. It inherits from 'mail.thread'
and 'mail.activity.mixin' to provide messaging and activity tracking
capabilities."""
_name = 'product.data.feed'
_description = 'Product Data Feed'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Name', help='Name of the feed', copy=False,
required=True)
url_link = fields.Char(string='Link', help='Data feed download link',
compute='_compute_url_link'
)
is_token = fields.Boolean(string='Use Token',
help='Use token or Not for the '
'security')
access_token = fields.Char(string='Access Token',
help='Access Token of the feed',
compute='_compute_access_token')
website_id = fields.Many2one('website', string='Websites',
help='Allow this data feed for the selected '
'websites.Allow for all if not set ')
format = fields.Char(string='File Formate',
help='The file formate of the data feed.',
default='CSV', readonly=True)
is_file_name = fields.Boolean(string='File Name',
help='Enabled the file name',
)
name_show = fields.Char(string='File Name', help='Show the file name')
use_model = fields.Selection(
[('Product', 'Product'), ('Product Variant', 'Product Variant')],
string='Use Model', help='Used model of the product feed',
default='Product', required=True)
used_model = fields.Char(string='Used Model', help='Model')
item_filter = fields.Char(string='Item Filter', help='The model domain to'
' filter for the feed')
feed_columns_line_ids = fields.One2many('product.data.feed.columns',
'data_feed_columns_id',
string='Columns',
help='Feed column line',
readonly=True,
)
columns_count = fields.Integer(string='Columns Count',
help='Total number of columns used this '
'feed',
compute='_compute_columns_count')
def generate_formatted_file_content(self, columns, item_filter):
"""Generate formatted content for a file based on specified columns
and an item filter.This method applies the provided filter criteria to
fetch relevant items from the environment, and then generates formatted
rows of values for the specified columns for each item."""
# Apply the filter criteria and fetch the relevant items
filtered_items = self.env[self.used_model].search(item_filter)
formatted_rows = []
# Iterate over each item and generate a row of values
for item in filtered_items:
row = []
for column in columns:
if column.type == 'Model Field':
# Access the field value directly
value = getattr(item, column.value_id.name, '')
elif column.type == 'Special':
if column.special_type == 'product_availability':
# Access the product's on-hand quantity
on_hand_qty = item.qty_available
# Set value based on on-hand quantity
if on_hand_qty == 0:
value = 'out of stock'
else:
value = 'in stock'
elif column.special_type == 'qty':
value = item.qty_available
elif column.special_type == 'product_price':
value = item.standard_price
elif column.special_type == 'disc_price':
value = item.list_price
elif column.special_type == 'price_without_tax':
value = item.list_price
elif column.special_type == 'price_currency':
value = self.currency_id.name
elif column.special_type == 'image_link':
value = item.image_1920
elif column.special_type == 'price_tax':
if item.taxes_id:
value = (item.list_price * (
item.taxes_id.amount / 100) +
item.list_price)
else:
value = 0.0
elif column.type == 'Text':
value = column.value
elif column.type == 'Value':
value = column.field_value_id.column_name
else:
value = column.value
row.append(value)
formatted_rows.append(row)
return formatted_rows
def action_download_doc(self):
"""Download the catalog"""
columns = self.feed_columns_line_ids
item_filter = eval(self.item_filter) if self.item_filter else []
formatted_file_content = self.generate_formatted_file_content(
columns, item_filter)
# Create a CSV content string
csv_content = StringIO()
csv_writer = csv.writer(csv_content)
column_header = [column.name for column in columns]
csv_writer.writerow(column_header)
for row in formatted_file_content:
csv_writer.writerow(row)
encoded_content = csv_content.getvalue().encode('utf-8')
# Close the StringIO buffer
csv_content.close()
attachment = self.env['ir.attachment'].create({
'name': self.name_show if self.name_show else 'feed',
'type': 'binary',
'datas': base64.b64encode(encoded_content),
'res_model': self.used_model,
'res_id': self.id,
'mimetype': 'text/csv'
})
return {
'type': 'ir.actions.act_url',
'target': 'new',
'url': f"/web/content/{attachment.id}?download=true"
}
def action_product_items(self):
"""Open the product item list"""
return {
'type': 'ir.actions.act_window',
'name': 'Feed Items',
'view_mode': 'tree,form',
'res_model': self.used_model,
'domain': self.item_filter,
'context': self.env.context,
}
def action_columns_creation(self):
"""Create the columns for feed."""
return {
'type': 'ir.actions.act_window',
'name': 'Columns',
'view_mode': 'tree,form',
'res_model': 'product.data.feed.columns',
'context': {
'default_feed_id': self.id,
'default_data_feed_columns_id': self.id,
},
'domain': [('feed_id', '=', self.id)]
}
@api.depends('access_token')
def _compute_access_token(self):
"""Update the access token when enabling the token boolean field"""
access_tokens = secrets.token_urlsafe(27)
self.write({'access_token': access_tokens})
def action_refresh_token(self):
"""Refresh and generate new token"""
access_tokens = secrets.token_urlsafe(
27) # 27 bytes gives you 36 characters
self.write({'access_token': access_tokens})
@api.onchange('is_file_name')
def _onchange_is_file_name(self):
"""Generate the random name when enabling the file_name"""
if self.is_file_name:
prefix = "feed-"
random_length = 4
random_chars = ''.join(
secrets.choice(string.ascii_letters + string.digits) for _ in
range(random_length))
random_name = prefix + random_chars
self.write({'name_show': random_name})
@api.onchange('use_model')
def _onchange_use_model(self):
"""When changing the use_model it update the model into used_model"""
if self.use_model == 'Product':
self.write({'used_model': 'product.template'})
else:
self.write({'used_model': 'product.product'})
@api.depends('format', 'name_show', 'is_token')
def _compute_url_link(self):
"""Compute the downloading link"""
for feed in self:
base_url = self.env['ir.config_parameter'].get_param(
'web.base.url') + '/product_data'
if feed.is_token and feed.is_file_name:
feed.url_link = f'{base_url}/{self.id}/{feed.name_show}.{feed.format}?access_token={feed.access_token}'
elif feed.is_file_name:
feed.url_link = f'{base_url}/{self.id}/{feed.name_show}.{feed.format}'
elif feed.is_token:
feed.url_link = f'{base_url}/{self.id}/feed.{feed.format}?access_token={feed.access_token}'
else:
feed.url_link = f'{base_url}/{self.id}/feed.{feed.format}'
def _compute_columns_count(self):
"""Calculate the total number of column count of the current feed"""
for rec in self:
if rec.ids:
rec.columns_count = self.env[
'product.data.feed.columns'].search_count(
[('feed_id', '=', rec.id)])
else:
rec.columns_count = 0

60
odoo_fb_insta_product_data_feed/models/product_data_feed_columns.py

@ -1,60 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Junaidul Ansar M (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed 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 (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import fields, models
class ProductDataFeedColumns(models.Model):
"""Model for defining columns in a product data feed.
This class represents the columns used in a product data feed. These columns
define the structure of the data to be included in the feed, including
various types such as text, model fields, values, and special types."""
_name = 'product.data.feed.columns'
_description = 'Product Data Feed Columns'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Name', help='Columns name')
feed_id = fields.Many2one('product.data.feed',
string='Feed', help='Feed Name')
type = fields.Selection(
[('Text', 'Text'), ('Model Field', 'Model Field'),
('Value', 'Value'), ('Special', 'Special')],
string='Type', help='Choose the type of the columns')
value = fields.Char(string="Value", help='Enter the column value')
value_id = fields.Many2one('ir.model.fields',
string="Value", help='Choose the column value',
)
field_value_id = fields.Many2one('field.column.value',
string="Value",
help='Choose the column value')
data_feed_columns_id = fields.Many2one('product.data.feed',
string='Data Columns',
help='Data columns inverse field')
special_type = fields.Selection(
[('product_price', 'Product Price'),
('disc_price', 'Discounted Price'),
('price_currency', 'Price Currency'),
('product_availability', 'Product Availability'),
('qty', 'Qty in Stock'),
('price_tax', 'Product Price(with Taxes)'),
('price_without_tax', 'Product Price(without Taxes)')],
string='Special Type', help='Choose the special type')

4
odoo_fb_insta_product_data_feed/security/ir.model.access.csv

@ -1,4 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_data_feed_user,access.product.data.feed.user,model_product_data_feed,base.group_user,1,1,1,1
access_product_data_feed_columns_user,access.product.data.feed.columns.user,model_product_data_feed_columns,base.group_user,1,1,1,1
access_field_column_value_user,access.field.column.value.user,model_field_column_value,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_product_data_feed_user access.product.data.feed.user model_product_data_feed base.group_user 1 1 1 1
3 access_product_data_feed_columns_user access.product.data.feed.columns.user model_product_data_feed_columns base.group_user 1 1 1 1
4 access_field_column_value_user access.field.column.value.user model_field_column_value base.group_user 1 1 1 1

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/check.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/chevron.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/cogs.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/consultation.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/ecom-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/education-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 733 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/hotel-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 911 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/license.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/lifebuoy.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/pos-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 878 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/puzzle.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/restaurant-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/service-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 839 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/trading-black.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/training.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/update.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/user.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 988 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/icons/wrench.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/categories.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/check-box.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/compass.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/corporate.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/customer-support.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/features.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/pictures.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/pie-chart.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/right-arrow.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 967 B

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/star.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/support.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/misc/whatsapp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/1.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/2.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/5.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/modules/7.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_models.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/column_view.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb5.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb7.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb8.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb9.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/fb_cat2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_item.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_model1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/feed_tree_view.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/hero.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img101.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img102.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/img22.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/assets/screenshots/website.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/banner.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

BIN
odoo_fb_insta_product_data_feed/static/description/icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

695
odoo_fb_insta_product_data_feed/static/description/index.html

@ -1,695 +0,0 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;"
xmlns="http://www.w3.org/1999/html">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
<div
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Product Data Feed Generation</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
Generate Product Catalog Feeds Link</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
Using this module we have to promote and market our sales through
facebook and
instagram for using the catalog of our product. Many of the businesses
sell
or advertise their product through facebook and instagram. So they need
a catalog that contains the information about your products. In this
module
generate the product data feed file for the facebook commerce manager in
automatic mode(by URL). After adding the data feed URL on facebook you
will be able to promote your product in sale channels , on facebook
shops,
instagram shopping, with dynamic ads, and more.
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Community &amp;
Enterprise Support.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">You can create the catalog of the product easily(Feed creation)</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">You can also add multiple feeds.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">The data feed formate is CSV file.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">You can filter the records based on the domain.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">You can enable the auto generated file name.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">You can share the Feed Link to anyone and post the link Facebook or Instagram.</span>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Go to Website -> eCommerce Menu -> Product Data Feed
->
Under the eCommerce Menu you can see the Product Data Feed submenu
clicking the menu its open the Product data Feed creation model.
</p>
<img src="assets/screenshots/website.png"
class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed Tree View.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Here you could see the list view of the Data Feed</p>
<img src="assets/screenshots/feed_tree_view.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed Model.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Inside the form view, you can configure the data feed security and format options.</p>
<img src="assets/screenshots/feed_model.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
*You could make the data feed token protected by enabling Use Token option.<br>
*You can regenerate the access token if needed.<br>
*If you use multi websites, you can specify which ones will allow this data feed.<br>
*Enable the file name to edit the file name.<br>
*You can filter the products.<br>
*The file format is CSV by default
</p>
<img src="assets/screenshots/img22.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed Column Smart Button View .
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Inside 'Columns', you could create the columns to show for the data feed.</p>
<img src="assets/screenshots/column_view.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed Column Model Creation.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">There are different options available.</p>
<img src="assets/screenshots/column_models.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Product Data Feed Item Smart Button View.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">All the filtered products can be seen inside the smart button 'Items'</p>
<img src="assets/screenshots/feed_item.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Copying the Product Data Feed Link.
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Copy the link to the product data feed file to share it with anyone, or you can paste the link on Facebook. By doing this, you will be able to promote your product on various sales channels. </p>
<img src="assets/screenshots/feed_model1.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Add the Catalogue.
</h3>
<img src="assets/screenshots/fb_cat1.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the E-commerce Catalogue Type.
</h3>
<img src="assets/screenshots/fb_cat2.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the Owner and Enter the Catalogue Name.
</h3>
<img src="assets/screenshots/fb3.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Click View Catalogue, to View the Catalogue.
</h3>
<img src="assets/screenshots/fb4.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Open Data Sources.
</h3>
<img src="assets/screenshots/fb5.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select Data Feed then Next.
</h3>
<img src="assets/screenshots/fb6.png" class="img-thumbnail">
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Paste Product Data Feed Link here.
</h3>
<img src="assets/screenshots/fb7.png" class="img-thumbnail">
</div>
</div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Add more Details about the Product.
</h3>
<img src="assets/screenshots/fb8.png" class="img-thumbnail">
</div></div><div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
View of Product Data Feed.
</h3>
<img src="assets/screenshots/fb9.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<img src="assets/screenshots/img101.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Downloaded File
</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">The downloaded file will look like this</p>
<img src="assets/screenshots/img102.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related Products</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/website_hide_button/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.jpg">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/website_portal_events/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/2.jpg">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/website_seo_kit/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/call_for_price_website/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/special_product_snippet/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/5.jpg">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/website_favourites_grid/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/7.jpg">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="width:35px; color:#000"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span>
</a> <a class="carousel-control-next" href="#demo1"
data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span></a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire Odoo Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Industries</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure and sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy configuration and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile friendly, awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An all-inclusive hotel management application</p>
</div>
</div>
</div>
</div>
<!-- END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48" width="48"
style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need help?
Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52" width="52"
style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068 27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
<!-- END OF SUPPORT -->

19
odoo_fb_insta_product_data_feed/views/field_column_value_views.xml

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Values creation form-->
<record id="field_column_value_view_form" model="ir.ui.view">
<field name="name">field.column.value.view.form</field>
<field name="model">field.column.value</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="feed_id"/>
<field name="column_name"/>
<field name="value"/>
</group>
</sheet>
</form>
</field>
</record>
</odoo>

49
odoo_fb_insta_product_data_feed/views/product_data_feed_columns_views.xml

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Product data feed columns form view-->
<record id="product_data_feed_columns_view_form" model="ir.ui.view">
<field name="name">product.data.feed.columns.view.form</field>
<field name="model">product.data.feed.columns</field>
<field name="arch" type="xml">
<form name="product_data_feed_columns">
<sheet>
<label for="name"/>
<div class="oe_title">
<h3>
<field name="name" required="1"/>
</h3>
</div>
<group name="main">
<group>
<field name="feed_id" default="context.get('default_feed_id')"/>
<field name="type"/>
<field name="value" attrs="{'invisible':[('type', '!=', 'Text')]}"/>
<field name="value_id" attrs="{'invisible':[('type', '!=', 'Model Field')]}"/>
<field name="field_value_id" attrs="{'invisible':[('type', '!=', 'Value')]}" context="{'default_feed_id': feed_id, 'default_column_name': name, 'default_value': field_value_id}"/>
<field name="special_type" attrs="{'invisible':[('type', '!=', 'Special')]}"/>
<field name="data_feed_columns_id" invisible="1" default="context.get('default_data_feed_columns_id')"/>
</group>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<!-- Product data feed column tree view-->
<record id="product_data_feed_columns_view_tree" model="ir.ui.view">
<field name="name">product.data.feed.columns.view.tree</field>
<field name="model">product.data.feed.columns</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="type"/>
<field name="value" string="Text Value"/>
<field name="field_value_id"/>
</tree>
</field>
</record>
</odoo>

111
odoo_fb_insta_product_data_feed/views/product_data_feed_views.xml

@ -1,111 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- product data feed action-->
<record id="product_data_feed_action" model="ir.actions.act_window">
<field name="name">Data Feed</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.data.feed</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add the data feed details.
</p>
</field>
</record>
<!-- Product data feed form view-->
<record id="product_data_feed_view_form" model="ir.ui.view">
<field name="name">product.data.feed.view.form</field>
<field name="model">product.data.feed</field>
<field name="arch" type="xml">
<form name="product_data_feed">
<header>
<button name="action_download_doc" type="object"
string="Download" class="btn-secondary"
attrs="{'invisible':[('feed_columns_line_ids', '=', [])]}"
widget="statusbar"/>
</header>
<sheet name="product_data_feed">
<!--smart button action-->
<div name="button_box" class="oe_button_box">
<button name="action_product_items" string="Items"
class="oe_stat_button"
icon="fa-cubes" type="object"/>
<button name="action_columns_creation" type="object"
class="oe_stat_button" string="Columns"
icon="fa-list">
<field name="columns_count" readonly="True"/>
<span class="o_stat_text">Columns</span>
</button>
</div>
<div class="oe_title">
<h1>
<field name="name" required="1"
placeholder="Feed Name...."/>
</h1>
</div>
<field name="url_link"
widget="CopyClipboardChar"
class="w-100 pb-2"/>
<group>
<group>
<field name="is_token" widget="boolean_toggle"/>
<label for="access_token" attrs="{'invisible':[('is_token', '=', False)]}"/>
<div class="o_row" attrs="{'invisible':[('is_token', '=', False)]}">
<field name="access_token"/>
<button class="btn-secondary" name="action_refresh_token" icon="fa-refresh" type="object"/>
</div>
<field name="website_id"/>
<label for="name_show"/>
<div class="o_row">
<field name="is_file_name" widget="boolean_toggle"/>
<field name="name_show" attrs="{'invisible':[('is_file_name', '=', False)]}" nolabel="1"/>
</div>
</group>
<group>
<field name="use_model" widget="radio"/>
<field name="used_model" invisible="1"/>
<field name="item_filter" widget="domain" options="{'model': 'product.template', 'in_dialog': true}"
attrs="{'invisible': [('use_model', '!=', 'Product')]}"/>
<field name="item_filter" widget="domain" options="{'model': 'product.product', 'in_dialog': true}"
attrs="{'invisible': [('use_model', '!=', 'Product Variant')]}"/>
<field name="format"/>
</group>
<notebook>
<page string="Columns" name="Columns">
<field name="feed_columns_line_ids" readonly="1">
<tree>
<field name="name"/>
</tree>
</field>
</page>
</notebook>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<!-- Product data feed tree view-->
<record id="product_data_feed_view_tree" model="ir.ui.view">
<field name="name">product.data.feed.view.tree</field>
<field name="model">product.data.feed</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="used_model"/>
<field name="is_token"/>
<field name="columns_count"/>
</tree>
</field>
</record>
<!-- product data feed menu-->
<menuitem id="product_data_feed_menu"
name="Product Data Feed"
parent="website_sale.menu_catalog"
action="product_data_feed_action"
sequence="6"/>
</odoo>
Loading…
Cancel
Save