diff --git a/README.md b/README.md
index d9bfd3b..4b0aa0b 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,112 @@
-# website
+Odoo Website Builder
+--------------------
+Get an awesome and free website,
+easily customizable with the Odoo website builder.
+
+Create enterprise grade website with our super easy builder. Use finely
+designed building blocks and edit everything inline.
+
+Benefit from out-of-the-box business features; e-Commerce, events, blogs, jobs
+announces, customer references, call-to-actions, etc.
+
+Edit Anything Inline
+--------------------
+
+Create beautiful websites with no technical knowledge. Odoo's unique *'edit
+inline'* approach makes website creation surprisingly easy. No more complex
+backend; just click anywhere to change any content.
+
+"Want to change the price of a product? or put it in bold? Want to change a
+blog title?" Just click and change. What you see is what you get. Really.
+
+Awesome. Astonishingly Beautiful.
+---------------------------------
+
+Odoo's building blocks allow to design modern websites that are not possible
+with traditional WYSIWYG page editors.
+
+Whether it's for products descriptions, blogs or static pages, you don't need
+to be a professional designer to create clean contents. Just drag and drop and
+customize predefined building blocks.
+
+Enterprise-Ready, out-of-the-box
+--------------------------------
+
+Activate ready-to-use enterprise features in just a click; e-commerce,
+call-to-actions, jobs announces, events, customer references, blogs, etc.
+
+Traditional eCommerce and CMS have poorly designed backends as it's not their
+core focus. With the Odoo integration, you benefit from the best management
+software to follow-up on your orders, your jobs applicants, your leads, etc.
+
+A Great Mobile Experience
+-------------------------
+
+Get a mobile friendly website thanks to our responsive design based on
+bootstrap. All your pages adapt automatically to the screen size. (mobile
+phones, tablets, desktop) You don't have to worry about mobile contents, it
+works by default.
+
+SEO tools at your finger tips
+-----------------------------
+
+The *Promote* tool suggests keywords according to Google most searched terms.
+Search Engine Optimization tools are ready to use, with no configuration
+required.
+
+Google Analytics tracks your shopping cart events by default. Sitemap and
+structured content are created automatically for Google indexation.
+
+Multi-Languages Made Easy
+-------------------------
+
+Get your website translated in multiple languages with no effort. Odoo proposes
+and propagates translations automatically across pages, following what you edit
+on the master page.
+
+Designer-Friendly Templates
+---------------------------
+
+Templates are awesome and easy to design. You don't need to develop to create
+new pages, themes or building blocks. We use a clean HTML structure, a
+[bootstrap](http://getbootstrap.com/) CSS.
+
+Customize every page on the fly with the integrated template editor. Distribute
+your work easily as an Odoo module.
+
+Fluid Grid Layouting
+--------------------
+
+Design perfect pages by drag and dropping building blocks. Move and scale them
+to fit the layout you are looking for.
+
+Building blocks are based on a responsive, mobile friendly fluid grid system
+that appropriately scales up to 12 columns as the device or viewport size
+increases.
+
+Professional Themes
+-------------------
+
+Design a custom theme or reuse pre-defined themes to customize the look and
+feel of your website.
+
+Test new color scheme easily; you can change your theme at any time in just a
+click.
+
+Integrated With Odoo Apps
+-------------------------
+
+### e-Commerce
+
+Promote products, sell online, optimize visitors' shopping experience.
+
+
+### Blog
+
+Write news, attract new visitors, build customer loyalty.
+
+
+### Online Events
+
+Schedule, organize, promote or sell events online; conferences, trainings, webinars, etc.
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..7d96f2f
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,46 @@
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import controllers
+from . import models
+from . import wizard
+
+import odoo
+from odoo import api, SUPERUSER_ID
+from odoo.http import request
+from functools import partial
+
+
+def uninstall_hook(env):
+ # Force remove ondelete='cascade' elements,
+ # This might be prevented by another ondelete='restrict' field
+ # TODO: This should be an Odoo generic fix, not a website specific one
+ website_domain = [('website_id', '!=', False)]
+ env['ir.asset'].search(website_domain).unlink()
+ env['ir.ui.view'].search(website_domain).with_context(active_test=False, _force_unlink=True).unlink()
+
+ # Cleanup records which are related to websites and will not be autocleaned
+ # by the uninstall operation. This must be done here in the uninstall_hook
+ # as during an uninstallation, `unlink` is not called for records which were
+ # created by the user (not XML data). Same goes for @api.ondelete available
+ # from 15.0 and above.
+ env['website'].search([])._remove_attachments_on_website_unlink()
+
+ # Properly unlink website_id from ir.model.fields
+ def rem_website_id_null(dbname):
+ db_registry = odoo.modules.registry.Registry.new(dbname)
+ with db_registry.cursor() as cr:
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ env['ir.model.fields'].search([
+ ('name', '=', 'website_id'),
+ ('model', '=', 'res.config.settings'),
+ ]).unlink()
+
+ env.cr.postcommit.add(partial(rem_website_id_null, env.cr.dbname))
+
+
+def post_init_hook(env):
+ env['ir.module.module'].update_theme_images()
+
+ if request:
+ env = env(context=request.default_context())
+ request.website_routing = env['website'].get_current_website().id
diff --git a/__manifest__.py b/__manifest__.py
new file mode 100644
index 0000000..c138b65
--- /dev/null
+++ b/__manifest__.py
@@ -0,0 +1,384 @@
+# -*- encoding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+{
+ 'name': 'Website',
+ 'category': 'Website/Website',
+ 'sequence': 20,
+ 'summary': 'Enterprise website builder',
+ 'website': 'https://www.odoo.com/app/website',
+ 'version': '1.0',
+ 'depends': [
+ 'digest',
+ 'web',
+ 'web_editor',
+ 'http_routing',
+ 'portal',
+ 'social_media',
+ 'auth_signup',
+ 'mail',
+ 'google_recaptcha',
+ 'utm',
+ ],
+ 'installable': True,
+ 'data': [
+ # security.xml first, data.xml need the group to exist (checking it)
+ 'security/website_security.xml',
+ 'security/ir.model.access.csv',
+ 'data/ir_asset.xml',
+ 'data/ir_cron_data.xml',
+ 'data/mail_mail_data.xml',
+ 'data/website_data.xml',
+ 'data/website_visitor_cron.xml',
+ 'data/digest_data.xml',
+ 'views/website_templates.xml',
+ 'views/snippets/snippets.xml',
+ 'views/snippets/s_title.xml',
+ 'views/snippets/s_cover.xml',
+ 'views/snippets/s_text_cover.xml',
+ 'views/snippets/s_text_image.xml',
+ 'views/snippets/s_image_text.xml',
+ 'views/snippets/s_instagram_page.xml',
+ 'views/snippets/s_banner.xml',
+ 'views/snippets/s_text_block.xml',
+ 'views/snippets/s_features.xml',
+ 'views/snippets/s_three_columns.xml',
+ 'views/snippets/s_picture.xml',
+ 'views/snippets/s_carousel.xml',
+ 'views/snippets/s_alert.xml',
+ 'views/snippets/s_card.xml',
+ 'views/snippets/s_share.xml',
+ 'views/snippets/s_social_media.xml',
+ 'views/snippets/s_rating.xml',
+ 'views/snippets/s_hr.xml',
+ 'views/snippets/s_facebook_page.xml',
+ 'views/snippets/s_image_gallery.xml',
+ 'views/snippets/s_countdown.xml',
+ 'views/snippets/s_product_catalog.xml',
+ 'views/snippets/s_comparisons.xml',
+ 'views/snippets/s_company_team.xml',
+ 'views/snippets/s_call_to_action.xml',
+ 'views/snippets/s_references.xml',
+ 'views/snippets/s_popup.xml',
+ 'views/snippets/s_faq_collapse.xml',
+ 'views/snippets/s_features_grid.xml',
+ 'views/snippets/s_tabs.xml',
+ 'views/snippets/s_table_of_content.xml',
+ 'views/snippets/s_chart.xml',
+ 'views/snippets/s_parallax.xml',
+ 'views/snippets/s_quotes_carousel.xml',
+ 'views/snippets/s_numbers.xml',
+ 'views/snippets/s_masonry_block.xml',
+ 'views/snippets/s_media_list.xml',
+ 'views/snippets/s_showcase.xml',
+ 'views/snippets/s_timeline.xml',
+ 'views/snippets/s_process_steps.xml',
+ 'views/snippets/s_text_highlight.xml',
+ 'views/snippets/s_progress_bar.xml',
+ 'views/snippets/s_blockquote.xml',
+ 'views/snippets/s_badge.xml',
+ 'views/snippets/s_color_blocks_2.xml',
+ 'views/snippets/s_product_list.xml',
+ 'views/snippets/s_mega_menu_multi_menus.xml',
+ 'views/snippets/s_mega_menu_menu_image_menu.xml',
+ 'views/snippets/s_mega_menu_thumbnails.xml',
+ 'views/snippets/s_mega_menu_little_icons.xml',
+ 'views/snippets/s_mega_menu_images_subtitles.xml',
+ 'views/snippets/s_mega_menu_menus_logos.xml',
+ 'views/snippets/s_mega_menu_odoo_menu.xml',
+ 'views/snippets/s_mega_menu_big_icons_subtitles.xml',
+ 'views/snippets/s_mega_menu_cards.xml',
+ 'views/snippets/s_google_map.xml',
+ 'views/snippets/s_map.xml',
+ 'views/snippets/s_dynamic_snippet.xml',
+ 'views/snippets/s_dynamic_snippet_carousel.xml',
+ 'views/snippets/s_embed_code.xml',
+ 'views/snippets/s_website_controller_page_listing_layout.xml',
+ 'views/snippets/s_website_form.xml',
+ 'views/snippets/s_searchbar.xml',
+ 'views/snippets/s_button.xml',
+ 'views/snippets/s_image.xml',
+ 'views/snippets/s_video.xml',
+ 'views/new_page_template_templates.xml',
+ 'views/website_views.xml',
+ 'views/website_pages_views.xml',
+ 'views/website_controller_pages_views.xml',
+ 'views/website_visitor_views.xml',
+ 'views/res_config_settings_views.xml',
+ 'views/website_rewrite.xml',
+ 'views/ir_actions_server_views.xml',
+ 'views/ir_asset_views.xml',
+ 'views/ir_attachment_views.xml',
+ 'views/ir_model_views.xml',
+ 'views/res_partner_views.xml',
+ 'views/neutralize_views.xml',
+ 'wizard/base_language_install_views.xml',
+ 'wizard/website_robots.xml',
+ ],
+ 'demo': [
+ 'data/website_demo.xml',
+ 'data/website_visitor_demo.xml',
+ ],
+ 'application': True,
+ 'post_init_hook': 'post_init_hook',
+ 'uninstall_hook': 'uninstall_hook',
+ 'assets': {
+ 'web.assets_frontend': [
+ ('replace', 'web/static/src/legacy/js/public/public_root_instance.js', 'website/static/src/js/content/website_root_instance.js'),
+ 'website/static/src/libs/zoomodoo/zoomodoo.scss',
+ 'website/static/src/scss/website.scss',
+ 'website/static/src/scss/website_controller_page.scss',
+ 'website/static/src/scss/website.ui.scss',
+ 'website/static/src/libs/zoomodoo/zoomodoo.js',
+ 'website/static/src/js/utils.js',
+ 'web/static/src/core/autocomplete/*',
+ 'website/static/src/components/autocomplete_with_pages/*',
+ 'website/static/src/js/tours/tour_utils.js',
+ 'website/static/src/js/content/website_root.js',
+ 'website/static/src/js/widgets/dialog.js',
+ 'website/static/src/js/content/compatibility.js',
+ 'website/static/src/js/content/menu.js',
+ 'website/static/src/js/content/snippets.animation.js',
+ 'website/static/src/js/show_password.js',
+ 'website/static/src/js/post_link.js',
+ 'website/static/src/js/plausible.js',
+ 'website/static/src/js/website_controller_page_listing_layout.js',
+ 'website/static/src/js/user_custom_javascript.js',
+ 'website/static/src/js/http_cookie.js',
+ 'website/static/src/xml/website.xml',
+ 'website/static/src/xml/website.background.video.xml',
+ 'website/static/src/xml/website.share.xml',
+ 'website/static/src/js/text_processing.js',
+ # Stable fix, will be replaced by an `ir.asset` in master to be able
+ # to clean `