External dependencies ,pre init hook & post init hook in odooCeline George
When we creating a module in odoo important thing is __manifest__.py( for odoo 10.0 and later versions) or __openerp__.py(for odoo 9.0 and earlier versions).
Empower your App by Inheriting from Odoo MixinsOdoo
Empower your App by Inheriting from Odoo Mixins. Let us recode everything from scratch! Or not.
Thibault Delavallee, Software Engineer, RD Marketing Team Leader, Odoo
Based on work from Yannick Tivisse, Martin Trigaux, and Damien Bouvy.
Empower your App by Inheriting from Odoo MixinsOdoo
The document discusses various features for integrating messaging, activities, and ratings into a plant nursery management system. It describes using mixin classes to inherit features like mail threading, activities, and ratings into models. Methods are overridden as needed to customize behavior for models like orders and plants. Templates and access tokens are also discussed for customizing the user experience for features like sending rating requests and accessing ratings.
This document provides an overview of regular expressions and examples of using them in Python. Some key points covered include:
- Regular expressions allow defining search patterns to find or extract text patterns from strings. The 're' library must be imported.
- Common patterns include ^ and $ to match start/end, . for any character, */+ for repetition, [] for character sets.
- Functions like search() and findall() are used to find matches. Groups () allow extracting portions of matches.
- Examples demonstrate searching/extracting email addresses, numbers, dates from text using regular expressions.
- Special characters like .,+,* have meaning in regex and must be escaped \. Special characters
The document discusses building Odoo modules. It outlines module structure, the manifest file, and XML usage. Key points include:
- Modules are split into separate directories for models, views, controllers, and more.
- The manifest file declares a module and specifies metadata. It configures installation settings.
- XML data files populate the database using <record> elements and follow naming conventions.
- Views define how records are displayed. Common types are tree, form, and search views composed of fields.
Tutorial: Develop an App with the Odoo FrameworkOdoo
This document describes how to build an Odoo module for a plant nursery management system. It covers the module architecture including models, views, menus, and basic CRUD operations using the ORM. It provides examples of model definitions, form and kanban views, search views, computed fields, constraints, and onchange methods. The goal is to manage plants, customers, and orders to track inventory and sales.
Object-oriented programming (OOP) uses objects that contain data and methods. The four pillars of OOP are abstraction, encapsulation, inheritance, and polymorphism. Abstraction hides unnecessary details, encapsulation shields an object's internal representation, inheritance allows subclasses to inherit attributes of superclasses, and polymorphism enables processing objects differently depending on their type. Classes define objects and contain data fields and methods, with objects being instances of classes that allocate space in memory. Access control in Java includes private, public, default, and protected access types.
Web controls are used to build the graphical user interface of ASP.NET applications. There are four main types of web controls: intrinsic controls, list controls, rich controls, and validation controls. Intrinsic controls correspond directly to basic HTML elements like text boxes and buttons. List controls handle repetitive elements like drop-down lists and checkboxes. Rich controls provide advanced functionality like calendars. Validation controls validate user input on the client-side before form submission.
This document provides an introduction to ASP.NET, including an overview of .NET and its components. It discusses how ASP.NET allows the .NET framework to be exposed to the web using IIS. It also covers topics like scripting languages, Microsoft Visual Studio, creating ASP.NET pages, controls, events, variables, data types, operators, functions and arrays. The document is intended as the first day of an 11-week introduction to ASP.NET course.
Android intents allow communication between application components like activities, services, and content providers. There are two main types of intents - implicit intents do not specify the component and rely on available system components, while explicit intents directly specify the component class. Intents are commonly used to start activities, services, display web pages or contacts, and broadcast messages. The example shows using an implicit intent to launch a web browser and explicit intents to start one activity from another and pass data between activities.
Things you should know about Javascript ES5. A programming language that enables you to create dynamically updating content, control multimedia, animate images, and pretty much everything else
Object Oriented Programming Concepts using JavaGlenn Guden
This document discusses object-oriented programming and compares old procedural programming techniques using structures to the newer object-oriented approach using classes. Specifically:
- Old programming used structures to define data types and separate functions to operate on those structures.
- The new object-oriented approach defines classes that encapsulate both the data structure and functions together as objects.
- Some key benefits of the object-oriented approach are that new types of objects can be added without changing existing code, and that new objects can inherit features from existing objects, making the code easier to modify.
React is a JavaScript library created by Facebook that allows building of user interfaces through components. Components are independent and reusable bits of code that return HTML via a render function. There are two types of components: class components that require a render method and extend React.Component, and function components that behave similarly but are simpler plain JavaScript functions. Props and state are used to pass data between components - props are immutable while state allows re-rendering on change.
A file is collection of information/data in a particular format.
Python too supports file handling and allows users to handle files i.e., to read and write files, along with many other file handling options, to operate on files.
This document discusses advance object-oriented programming concepts. It covers procedural programming vs object-oriented programming, features of OOP like classes, objects, inheritance and polymorphism. It also discusses OOP design principles like single responsibility, open-closed, Liskov substitution, dependency inversion and interface segregation principles. Examples are provided to explain concepts like inheritance, polymorphism, abstraction and interfaces. The document provides a comprehensive overview of key OOP concepts and design principles.
This document provides an overview of lists in Python. It defines lists as ordered and changeable collections that allow duplicate elements. It describes how to create, access, modify, loop through, add and remove elements from lists. Built-in list methods like append(), pop(), sort(), count() and their usage are explained. The document also shows examples of sorting lists, removing failed grades, shuffling words to create anagrams, and reading/writing lists from user input.
The document discusses process synchronization and solutions to the critical section problem. It introduces the producer-consumer problem as an example that requires synchronization. The critical section problem aims to ensure that only one process at a time can be executing shared code or accessing shared data. Peterson's algorithm provides a solution for two processes using shared variables. Hardware synchronization methods like mutex locks and semaphores provide atomic primitives to synchronize processes. Semaphores use wait() and signal() operations to control access to shared resources without busy waiting.
Topics Covered
==============================
Overview of .NET
Overview of ASP.NET
Creating an ASP.NET Web Form
Adding Event Procedures
Validating User Input
This document discusses DOM (Document Object Model) and events in JavaScript. It covers DOM node retrieval, the document tree structure, child, sibling and parent node relationships, DOM manipulation methods like appendChild and innerHTML, event handling and the bubbling and default behaviors of events.
The document defines the Document Object Model (DOM) as an application programming interface (API) for HTML and XML documents that defines the logical structure of a document and how it can be accessed and manipulated programmatically. The DOM is a W3C standard separated into three parts - the core DOM for any structured document, the XML DOM for XML documents, and the HTML DOM for HTML documents. The DOM provides a standard programming interface that can be used across various environments and applications to dynamically access and update the content, structure, and style of documents.
This document provides information about Python CGI (Common Gateway Interface) programming. It discusses what CGI is, how information is exchanged between a web server and CGI script, and gives an example of a simple "Hello World" Python CGI script. It also covers CGI architecture, configuration, passing data to CGI scripts using GET and POST requests, and handling different HTML form elements like textboxes, checkboxes, radio buttons, and dropdown menus in CGI scripts.
This document discusses how to develop automated tests for websites using website.tour.js. It begins by explaining what automated tests and tutorials are. It then covers the architecture of website.tour.js, how to define tours/tests with steps, and how actions are simulated during tests. Finally, it provides an example of a more complex tutorial case study and discusses testing practices like using the runbot.
This document contains code examples of custom pipes in Angular. It defines an exponential strength pipe that takes a value and exponent, a pipe that fetches JSON data from a URL, and components that use these pipes to transform values and data. The exponential pipe powers a number by the given exponent. The fetch pipe retrieves JSON from a URL only once and caches the result. Components apply these pipes to bind data and transform values in their templates.
Open Source Ajax Solution @OSDC.tw 2009Robbie Cheng
This document provides an overview of various open source Ajax solutions including jQuery + DWR, GWT, and ZK. jQuery is a JavaScript library that simplifies DOM manipulation and AJAX requests. DWR allows making remote procedure calls from JavaScript to Java. GWT compiles Java code to JavaScript and supports component-based development. ZK is a server-centric framework that uses XML markup and allows building rich web applications in pure Java without writing JavaScript.
The document discusses different state management techniques in ASP.NET. It describes client-side techniques like hidden fields, view state, cookies, query strings, and control state. It also describes server-side techniques like session state and application state. Session state stores and retrieves data for each user session while application state stores data accessible to all users. Examples are provided for hidden fields, view state, cookies, query strings, session state, and application state.
Develop an App with the Odoo Framework or How to Implement a Plant Nursery in a Few Minutes.
Yannick Tivisse, Software Engineer, RD4HR Team Leader, Odoo
TechDays 2013 Jari Kallonen: What's New WebForms 4.5Tieturi Oy
This document summarizes new features in ASP.NET WebForms 4.5, including strongly typed data controls, model binding, unobtrusive validation, HTML5 support, and asynchronous programming support. It provides code examples of using data binding, model binding with value providers, validation with data annotations and validation controls, and asynchronous code with the async and await keywords. The document demonstrates these new ASP.NET features.
Web controls are used to build the graphical user interface of ASP.NET applications. There are four main types of web controls: intrinsic controls, list controls, rich controls, and validation controls. Intrinsic controls correspond directly to basic HTML elements like text boxes and buttons. List controls handle repetitive elements like drop-down lists and checkboxes. Rich controls provide advanced functionality like calendars. Validation controls validate user input on the client-side before form submission.
This document provides an introduction to ASP.NET, including an overview of .NET and its components. It discusses how ASP.NET allows the .NET framework to be exposed to the web using IIS. It also covers topics like scripting languages, Microsoft Visual Studio, creating ASP.NET pages, controls, events, variables, data types, operators, functions and arrays. The document is intended as the first day of an 11-week introduction to ASP.NET course.
Android intents allow communication between application components like activities, services, and content providers. There are two main types of intents - implicit intents do not specify the component and rely on available system components, while explicit intents directly specify the component class. Intents are commonly used to start activities, services, display web pages or contacts, and broadcast messages. The example shows using an implicit intent to launch a web browser and explicit intents to start one activity from another and pass data between activities.
Things you should know about Javascript ES5. A programming language that enables you to create dynamically updating content, control multimedia, animate images, and pretty much everything else
Object Oriented Programming Concepts using JavaGlenn Guden
This document discusses object-oriented programming and compares old procedural programming techniques using structures to the newer object-oriented approach using classes. Specifically:
- Old programming used structures to define data types and separate functions to operate on those structures.
- The new object-oriented approach defines classes that encapsulate both the data structure and functions together as objects.
- Some key benefits of the object-oriented approach are that new types of objects can be added without changing existing code, and that new objects can inherit features from existing objects, making the code easier to modify.
React is a JavaScript library created by Facebook that allows building of user interfaces through components. Components are independent and reusable bits of code that return HTML via a render function. There are two types of components: class components that require a render method and extend React.Component, and function components that behave similarly but are simpler plain JavaScript functions. Props and state are used to pass data between components - props are immutable while state allows re-rendering on change.
A file is collection of information/data in a particular format.
Python too supports file handling and allows users to handle files i.e., to read and write files, along with many other file handling options, to operate on files.
This document discusses advance object-oriented programming concepts. It covers procedural programming vs object-oriented programming, features of OOP like classes, objects, inheritance and polymorphism. It also discusses OOP design principles like single responsibility, open-closed, Liskov substitution, dependency inversion and interface segregation principles. Examples are provided to explain concepts like inheritance, polymorphism, abstraction and interfaces. The document provides a comprehensive overview of key OOP concepts and design principles.
This document provides an overview of lists in Python. It defines lists as ordered and changeable collections that allow duplicate elements. It describes how to create, access, modify, loop through, add and remove elements from lists. Built-in list methods like append(), pop(), sort(), count() and their usage are explained. The document also shows examples of sorting lists, removing failed grades, shuffling words to create anagrams, and reading/writing lists from user input.
The document discusses process synchronization and solutions to the critical section problem. It introduces the producer-consumer problem as an example that requires synchronization. The critical section problem aims to ensure that only one process at a time can be executing shared code or accessing shared data. Peterson's algorithm provides a solution for two processes using shared variables. Hardware synchronization methods like mutex locks and semaphores provide atomic primitives to synchronize processes. Semaphores use wait() and signal() operations to control access to shared resources without busy waiting.
Topics Covered
==============================
Overview of .NET
Overview of ASP.NET
Creating an ASP.NET Web Form
Adding Event Procedures
Validating User Input
This document discusses DOM (Document Object Model) and events in JavaScript. It covers DOM node retrieval, the document tree structure, child, sibling and parent node relationships, DOM manipulation methods like appendChild and innerHTML, event handling and the bubbling and default behaviors of events.
The document defines the Document Object Model (DOM) as an application programming interface (API) for HTML and XML documents that defines the logical structure of a document and how it can be accessed and manipulated programmatically. The DOM is a W3C standard separated into three parts - the core DOM for any structured document, the XML DOM for XML documents, and the HTML DOM for HTML documents. The DOM provides a standard programming interface that can be used across various environments and applications to dynamically access and update the content, structure, and style of documents.
This document provides information about Python CGI (Common Gateway Interface) programming. It discusses what CGI is, how information is exchanged between a web server and CGI script, and gives an example of a simple "Hello World" Python CGI script. It also covers CGI architecture, configuration, passing data to CGI scripts using GET and POST requests, and handling different HTML form elements like textboxes, checkboxes, radio buttons, and dropdown menus in CGI scripts.
This document discusses how to develop automated tests for websites using website.tour.js. It begins by explaining what automated tests and tutorials are. It then covers the architecture of website.tour.js, how to define tours/tests with steps, and how actions are simulated during tests. Finally, it provides an example of a more complex tutorial case study and discusses testing practices like using the runbot.
This document contains code examples of custom pipes in Angular. It defines an exponential strength pipe that takes a value and exponent, a pipe that fetches JSON data from a URL, and components that use these pipes to transform values and data. The exponential pipe powers a number by the given exponent. The fetch pipe retrieves JSON from a URL only once and caches the result. Components apply these pipes to bind data and transform values in their templates.
Open Source Ajax Solution @OSDC.tw 2009Robbie Cheng
This document provides an overview of various open source Ajax solutions including jQuery + DWR, GWT, and ZK. jQuery is a JavaScript library that simplifies DOM manipulation and AJAX requests. DWR allows making remote procedure calls from JavaScript to Java. GWT compiles Java code to JavaScript and supports component-based development. ZK is a server-centric framework that uses XML markup and allows building rich web applications in pure Java without writing JavaScript.
The document discusses different state management techniques in ASP.NET. It describes client-side techniques like hidden fields, view state, cookies, query strings, and control state. It also describes server-side techniques like session state and application state. Session state stores and retrieves data for each user session while application state stores data accessible to all users. Examples are provided for hidden fields, view state, cookies, query strings, session state, and application state.
Develop an App with the Odoo Framework or How to Implement a Plant Nursery in a Few Minutes.
Yannick Tivisse, Software Engineer, RD4HR Team Leader, Odoo
TechDays 2013 Jari Kallonen: What's New WebForms 4.5Tieturi Oy
This document summarizes new features in ASP.NET WebForms 4.5, including strongly typed data controls, model binding, unobtrusive validation, HTML5 support, and asynchronous programming support. It provides code examples of using data binding, model binding with value providers, validation with data annotations and validation controls, and asynchronous code with the async and await keywords. The document demonstrates these new ASP.NET features.
1) The document discusses developing a website, editor, and themes using Odoo. It demonstrates how to make pages editable by adding website dependencies and modifying controllers and templates.
2) It then covers building reusable snippets or blocks that can be dragged and dropped. Snippets have a template, JavaScript behavior, and can make API calls.
3) Snippet options allow configuring snippets in the website editor by extending the snippet options framework and setting data on the snippet element.
This document provides an overview of the Yii framework. It discusses why to use Yii, its main components including MVC, database access, forms and validation. It then covers key aspects of building applications with Yii such as configuration, controllers, models, views and layouts. It also discusses authentication, authorization, query building and Active Record for database access. Overall, the document is an introduction to the main concepts and features in the Yii PHP framework.
This presentation was prepared for a Webcast where John Yerhot, Engine Yard US Support Lead, and Chris Kelly, Technical Evangelist at New Relic discussed how you can scale and improve the performance of your Ruby web apps. They shared detailed guidance on issues like:
Caching strategies
Slow database queries
Background processing
Profiling Ruby applications
Picking the right Ruby web server
Sharding data
Attendees will learn how to:
Gain visibility on site performance
Improve scalability and uptime
Find and fix key bottlenecks
See the on-demand replay:
http://pages.engineyard.com/6TipsforImprovingRubyApplicationPerformance.html
The document provides an overview of the table of contents for Visual Studio 2005. It outlines topics such as application and page frameworks, GUI controls, validation controls, master pages, themes and skins, collections and lists, data binding, data management with ADO.Net, working with XML, site navigation, security, state management, caching, debugging and error handling, and file I/O and streams. It also briefly discusses machine and web configurations.
Developing your first application using FI-WAREFermin Galan
This document provides instructions for developing a first application using FI-WARE by connecting sensors to the FI-WARE IoT backend. It discusses connecting a basic Z-Wave sensor pack to the backend using FIGWAY software on a Raspberry Pi. The steps include including sensors in a Z-Wave network, editing registration and observation scripts to specify sensor IDs and callback URLs, registering sensors using fizway_register, and running fizway to interconnect sensors to the backend. Configuration files and ports for different sensor types like switches are also outlined. The goal is to enable sharing sensor data in FI-WARE's IoT Challenge HUB spreadsheet by connecting low-cost hardware to FI-WARE open APIs.
The document discusses the introduction of GUI components using JavaScript. It describes the architecture of the GUI framework including custom JavaScript and CSS libraries. It then discusses the benefits of the framework including separation of design and control, simple interfaces, and ease of data handling. Code examples are provided to demonstrate how to write HTML for a form and table and the corresponding JavaScript to initialize components and handle form submission and displaying data in the table. The next session will cover communication with the server using Ajax and JSON.
This document discusses using WebSockets to push data updates from a server to a client browser in real-time (rather than using the traditional pull method). It analyzes some benefits of this approach and outlines technologies that could be used, including WebSockets, Ratchet, Laravel, Beanstalkd, and Redis. It then describes how observable and changed data on the client-side could be structured and passed to a WebSocket server via a message queue. Typical problems that may arise with this type of real-time architecture are also listed.
How to add Many2Many fields in odoo website form.pptxCeline George
This feature dynamically links various pieces of data, creating complex relationships between records. Users can enjoy a more personalized and engaging experience on your website. For instance, when a user interacts with one record, related records are automatically shown.
AngularJS is a JavaScript framework that extends HTML and allows developers to create dynamic web applications. It features two-way data binding, services for making HTTP requests, and directives for common tasks like iteration and conditional display. The presentation discusses how to build AngularJS applications using core features like controllers, filters, forms, and routing. It also explains how to integrate AngularJS and ColdFusion by building RESTful APIs with CF components, handling data loading, and improving security. The demo application illustrates techniques for building forms, working with JSON data, and testing AngularJS applications.
HTML5 is a language for structuring and presenting content for the World Wide Web. it is the fifth revision of the HTML standard (created in 1990 and standardized as HTML4 as of 1997) and as of February 2012 is still under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). It improves interoperability and reduces development costs by making precise rules on how to handle all HTML elements, and how to recover from errors
This document discusses several popular third-party JavaScript libraries including: DataJS for working with data, BreezeJS for managing data models, KnockoutJS for building user interfaces, AngularJS as a full-featured MVC framework, LESS as a CSS pre-processor, Bootstrap for responsive design, and media queries for responsive design across devices. Code examples are provided for implementing these libraries.
Here are 4 ways to mitigate code injection attacks:
1. Use parameterized queries or stored procedures instead of concatenating strings. This prevents user input from being interpreted as code.
2. Validate all user input and sanitize special characters. Remove characters like ';', '--', etc that could alter the meaning of the SQL query.
3. Limit account privileges to only what is necessary. Don't grant more powerful privileges than an account actually needs.
4. Implement input validation rules at the application layer to define what is considered valid user input before it reaches the database.
2. What are some best practices for securing SQL Server logins and users? (Please give at least 4 examples)
Here are 4 SQL Server
- The document discusses the Stripes framework, an alternative to Struts for building Java web applications. It highlights some key advantages of Stripes such as simpler configuration without XML files, convention-based programming, and built-in features like validation and internationalization.
- Stripes uses annotations and conventions rather than external configuration files. Event handlers in action beans return resolutions to control application flow rather than forwarding. Validation is implemented through annotations rather than XML.
- The document provides an overview of fundamental Stripes concepts such as action beans, URL binding, validation, type conversion, and JSP tags, contrasting them with the typical Struts approach. It argues Stripes makes web development in Java easier through its simplified and intuitive programming
How to Add Sort Option in Website Portal Odoo 17Celine George
Odoo provides a versatile approach to improving the user interface on our website portal by enabling the addition of sorting features customized to our requirements.
Session highlighting and demonstrating approaches to common challenges in modern portlet development. Topics include AJAX in JSR-168 and JSR-286 portlets, CSS and Javascript toolkits, security, and optimization of front-end resources. This session was presented at the Jasig Spring 2010 conference in San Diego, CA by Jennifer Bourey.
This session describes the architecture and implementation of an embeddable, extensible enterprise content management core for Java EE and simpler platforms. The presentation starts by describing the general architectural concepts used as building blocks:
• A schema and document model, reusing XML schemas and making good use of XML namespaces, where document types are built with several facets
• A repository model, using hierarchy and versioning, with the Content Repository API for Java (JSR 170) being one of the possible back ends
• A query model, based on the Java Persistence query language (JSR 220) and reusing the path-based concepts from Java Content Repositories (JCR)
• A fine-grained security model, compatible with WebDAV concepts and designed to provide flexible security policies
• An event model using synchronous and asynchronous events, allowing bridging through Java Message Service (JMS) or other systems to other event-enabled frameworks
• A directory model, representing access to external data sources using the same concepts as for documents but taking advantage of the specificities of the data back ends
Suitable abstraction layers are put in place to provide the required level of flexibility. One of the main architectural tasks is to find commonalities in all the systems used (or whose use is planned in the future) so framework users need to learn and use a minimal number of concepts. The result is a set of concepts that are fundamental to enterprise document management and are usable through direct Java technology-based APIs, Java EE APIs, or SOA. The presentation shows, for each of the main components, which challenges have been met and overcome when building a framework in which all components are designed to be improved and replaced by different implementations without sacrificing backward compatibility with existing ones.
The described implementation, Nuxeo Core, can be embedded in a basic Java technology-based framework based on OSGi (such as Eclipse) or in one based on Java EE, according to the needs of the application using it. This means that the core has to function without relying on Java EE services but also has to take advantage of them when they are available (providing clustering, messaging, caching, remoting, and advanced deployment).
This document provides a technical summary of a complex integration using Dexterity to manage member profiles and synchronize data between a Plone website and a Salesforce CRM for the nonprofit Net Impact. Key features included editable member profiles, searchable member directories, multi-level privacy workflows, and nightly syncing of member data between the two systems. Custom behaviors, schemas, and forms were developed to handle things like member roles, profile editing, and converting Salesforce IDs to Plone UUIDs.
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012crokitta
APEX& jQuery Mobile
Binnenkort zal Oracle versie de lang aangekondigde upgrade naar release 4.2 van Oracle Application Express beschikbaar maken. Een van de meest besproken nieuwe features die voor dit nieuwe release zijn aangekondigd is de integratie van het jQuery Mobile framework. Met de integratie van dit framework zal het mogelijk worden om met APEX applicaties te ontwikkelen, die geschikt zijn voor mobiele toestellen.
Wat is en hoe werkt jQuery Mobile en wat betekend dit voor het ontwikkelen in APEX. Dat zijn de onderwerpen die de presentatie aan bod komen. En waarom wachten tot het release van 4.2. Het is namelijk nu al mogelijk om jQuery Mobile in APEX te integreren en gebruiken. Hoe, wordt in een demo getoond. Deze sessie is waarschijnlijk de enige waarin u gevraagd zal worden om uw mobile telefoon aan te laten staan.
The document discusses connecting hardware devices like barcode scanners and receipt printers to a Point of Sale (PoS) system using an Internet of Things (IoT) Box. It provides instructions on connecting the IoT Box to both a network via Ethernet or WiFi and configuring the box in the Odoo PoS. It also describes how to update the IoT Box software by pulling the latest code from GitHub and rebooting the box for the changes to take effect. Pricing details are given for IoT Box subscriptions, custom driver development, and obtaining a free box through an Odoo Enterprise contract.
This presentation targets people implementing Odoo and making custom developments. During this presentation, you will learn how Odoo Studio can be used as a prototyping tool for developers. More specifically, you will understand how to use it to prepare custom developments and how it will help you save both time & money.
Discover all the different features of Odoo Studio and how they will make your work easier!
Through different case studies, you will learn how to use Odoo Studio version 12 to create and customize Odoo apps in order to better fit your business needs.
Odoo Experience 2018 - GDPR: How Odoo Can Help You with ComplieanceElínAnna Jónasdóttir
Since May 25th, 2018, the General Data Protection Regulation (GDPR) has come into effect, opening a new era of data protection and privacy. Everyone has heard and read a lot of information about GDPR, but it can be difficult to understand exactly what it means for you, in practical terms, what you should do to be compliant with the new rules, and how Odoo can help you with this daunting task.
After covering the key concepts of GDPR, this talk will review the most common processes a business needs to implement under GDPR. Based on our experience at Odoo SA, we'll discuss how Odoo can help you in practice to become compliant, from the data mapping step to the processing of data subject requests.
Odoo Experience 2018 - How to Break Odoo Security (or how to prevent it)ElínAnna Jónasdóttir
Odoo's security model uses multi-level access controls to restrict data access through groups, access control lists (ACLs), and rules at both the model and field level. Common vulnerabilities include injection, improper access controls, information leaks, and cross-site scripting. To break Odoo's security, one would try to exploit vulnerabilities like SQL injection, accessing data without proper permissions, or leaking sensitive information through unsafe domain combinations.
Odoo Experience 2018 - Multi-Channel Sales: The Future of RetailElínAnna Jónasdóttir
The document discusses multi-channel sales and Odoo's sales management capabilities. It describes how Odoo allows users to manage business-to-business and business-to-consumer sales through multiple channels including email marketing, sales management, e-commerce, and point-of-sale in a single integrated system. The document provides examples of how Odoo can be used for tasks like managing opportunities, quotations, orders, deliveries, payments, inventory, and reporting across different sales channels.
Odoo Experience 2018 - Speed Up Credit Collection with Automated Follow-UpsElínAnna Jónasdóttir
During this talk, we will see how the automated follow-ups evolved to be even more user-friendly with a brand new view, new functionalities and a new integration possibility.
Odoo Experience 2018 - Improve Your Visibility and Prospect Better with OdooElínAnna Jónasdóttir
1. The document discusses how Odoo can help businesses improve their online visibility, generate leads, and better communicate with clients through features like building a website, adding contact forms, mass mailings, and marketing automation.
2. It emphasizes that Odoo allows creating a website in minutes by selecting templates and building blocks and optimizing the site for search engine optimization.
3. The conclusion states that Odoo can help businesses focus on long term goals like recurring revenues and new partnerships while also achieving short term goals like services revenues and developing customer features.
Odoo Experience 2018 - Organize Your Operations in a Startup EnvironmentElínAnna Jónasdóttir
A startup is always running full speed! You need a powerful IT architecture to support it:
- Build a community,
- Come up with an offer very quickly,
- Service delivery & tracking,
- Methodic invoicing with a good follow-up,
- Reactive customer support (live chat, video chat),
- Rating, etc.
During this presentation we'll cover all of this and more!
This document provides best practices for closing deals and optimizing CRM processes using Odoo. It first discusses why optimizing CRM is important to attract customers, free resources, predict changes, reduce costs and increase efficiency. Next, it advises analyzing the current situation by understanding the target, process, customer relationships and pain points. Finally, it explains how Odoo can help by automating marketing campaigns, customer journeys and follow ups to set up sales teams, automate lead scoring and configuration, and use KPIs to identify issues and get more efficiency. The conclusion states that using Odoo will maximize CRM processes and deliver benefits sooner than expected.
Odoo Experience 2018 - How a Feedback Loop Helps to Fine-Tune Your Manufactu...ElínAnna Jónasdóttir
This document discusses Odoo's quality control app, which allows companies to improve processes and products through a feedback loop. It introduces control points to define quality checks, which generate quality alerts if issues arise. These can then be analyzed through reporting to fine-tune the manufacturing line over time. The five-step process involves setting up control points, performing checks, creating alerts, and analyzing results for continuous improvement.
Odoo Experience 2018 - Successful Import of Big Data with an Efficient ToolElínAnna Jónasdóttir
During this presentation people will learn how to build easier and better import strategies, and the focus will be on:
1) The understanding of the tool odoo_csv_import, focused on the available options of the load process (no data transformation)
2) How to solve two difficulties that only this tool can handle easily:
- How to import big data
- How to import specific cases of data relationships
Odoo Experience 2018 - Inventory: Advanced Flow with the New BarcodeElínAnna Jónasdóttir
This talk may interest beginner and expert users who want to work with a barcode scanner. The version and edition covered will be Odoo 12, Enterprise only.
Join the talk to discover the new barcode interface. You will learn how to to use it to treat transfers and inventory adjustments efficiently. Furthermore, you will everything that's new in Odoo V12 related to barcode scanning.
Discover what Easypost is, and how an integration with Easypost could be useful for your business. This talk is intended for all users, from beginners to experts. During this session and live demo, you'll learn how you can easily integrate Odoo with Easypost.
Odoo Experience 2018 - How to Manage Accounting Firms with Odoo?ElínAnna Jónasdóttir
1) Odoo can help accounting firms go paperless, automate accounting processes, improve reporting, and scale up their activity.
2) It allows them to organize documents, automate invoicing and reconciliation, and create improved audit reports.
3) Odoo also provides tools for accounting firms to manage client databases, set up new client accounts, and invoice clients for services using projects, subscriptions, and expenses.
ICSE 2025 Keynote: Software Sustainability and its Engineering: How far have ...patricialago3459
Thanks to its digital transformation, society depends on software. This is expected to bring important benefits but at the same time is accompanied by worrisome constraints. The societal role of software and its engineering is not new. Nor is their need to be sustainable. But what does it mean, really? And how far have we come with our research?
This talk wants to trigger reflection on the research being done, its impact and its true contribution to the complex and urgent problems posed by both society and our planet.
Microsoft Azure Data Fundamentals (DP-900) Exam Dumps & Questions 2025.pdfMinniePfeiffer
• For a full set of 640 questions. Go to
https://skillcertpro.com/product/microsoft-azure-data-fundamentals-dp-900-exam-questions/
• SkillCertPro offers detailed explanations to each question which helps to understand the concepts better.
• It is recommended to score above 85% in SkillCertPro exams before attempting a real exam.
• SkillCertPro updates exam questions every 2 weeks.
• You will get life time access and life time free updates
• SkillCertPro assures 100% pass guarantee in first attempt.
Speech 3-A Vision for Tomorrow for GE2025Noraini Yunus
This SlideShare presentation explores critical choices ahead for Singapore as GE2025 approaches. It highlights the Singapore United Party's manifesto—a roadmap to balance innovation with sustainability, compassion with ambition, and inclusivity with excellence. Through affordable housing, equitable education, and accessible healthcare, Noraini Bte Yunus champions a thriving society. This inspiring message invites Singaporeans to unite, rise above challenges, and build a resilient, forward-looking nation. Together, we can turn aspirations into reality. Moving Forward, Together!
Inside, you’ll find practical, easy-to-implement strategies that uncover hidden profit opportunities in your daily operations—strategies that drive real growth without added risk.
If you're working harder than ever but not seeing the results you expect, this short read could be the reset your business needs.
The Business Dynamics of Quick Commerce.pdfRDinuRao
This research explores the transformative rise of Quick Commerce (Q-Commerce)—an advanced evolution of e-commerce that emphasizes ultra-fast delivery, typically within 15–30 minutes, using hyperlocal micro-fulfillment centers. With the rapid pace of urbanization and digitalization, Q-commerce is reshaping consumer expectations, retail strategies, and supply chain models.The seminar Presentation Report has been completed by me under the guidance of Dr. Varun Agarwal. The report investigates the pivotal components of this disruption across marketing, operations, sustainability, and long-term viability.
The study begins with a deep dive into consumer psychology, applying theories like Impulse Buying (Stern, 1962) and Maslow’s Hierarchy of Needs, highlighting how digital platforms exploit impulse-driven purchasing. Supported by Ajzen’s Theory of Planned Behavior, the research explains how attitudes, social norms, and perceived control influence the purchasing decisions in a fast-paced retail setting.
A core component of the research is marketing strategy. Q-commerce companies deploy AI-driven personalization, geo-targeting, influencer marketing, and loyalty programs to attract and retain customers. For instance, influencer-driven campaigns achieve conversion rates of up to 65%, showcasing their significance in a digital-first market.
Using secondary data from McKinsey, Deloitte, KPMG, Statista, and HBR, the paper presents compelling figures—Q-commerce grew from $0.5 billion in 2022 to $5.5 billion in 2025, with projections reaching $9.95 billion by 2029. The average order value has doubled, while CAGR stands at 4.5%, signifying rapid adoption. Despite the meteoric growth, the study critically assesses challenges to profitability, such as steep operational costs, steep discounts, and last-mile delivery expenses.
A comparative analysis of platforms—Blinkit, Swiggy Instamart, Zepto, BigBasket, and JioMart—reveals how market leaders differentiate through delivery speed, inventory accuracy, app integrations, and urban focus. Moreover, the research stresses the environmental and labor challenges that must be addressed—like packaging waste, carbon emissions, and gig worker instability.
The discussion extends into how Q-commerce forces traditional retailers to adapt, investing in EV logistics, dark stores, and sustainability measures. It underscores the AI-led shift in consumer behavior, and the need for balanced growth that prioritizes environmental responsibility and ethical labor practices.
In conclusion, the paper recommends a future roadmap for Q-commerce: promoting eco-friendly logistics, subscription models, fair employment, and policy alignment. It calls for future research to explore Tier-2 and Tier-3 city expansion and to craft long-term profitability frameworks. Ultimately, this study positions Q-commerce not just as a convenience, but as a catalyst for redefining urban retail economics and digital lifestyle
Speech 2-Unity in Diversity, Strength in SolidarityNoraini Yunus
This SlideShare presentation celebrates Singapore's journey through SG60, emphasizing resilience, inclusivity, and the vision for a fair, just, and united nation. It encapsulates the Singapore United Party (SUP) manifesto principles—strong starts for children, accessible housing and healthcare, and opportunities for all—while showcasing Noraini Bte Yunus's commitment to bridging divides, supporting the silver generation, and empowering every Singaporean to pursue their dreams. Together, let's honor the past and secure a brighter future. Moving Forward, Together!
step-by-step setup of the OutSystems Cloud Connector, demonstrating how to establish secure connections with on-premises databases, APIs, and other private endpoints. Whether you are working with legacy systems, enterprise data, or restricted internal services, this session will equip you with the knowledge and best practices to seamlessly integrate them with your cloud applications.
25. class Order(models.Model):
_name = 'nursery.order'
name = fields.Datetime(default=fields.Datetime.now)
plant_id = fields.Many2one("nursery.plant", required=True)
customer_id = fields.Many2one("nursery.customer")
state = fields.Selection([
('draft', 'Draft'),
('confirm', 'Confirmed'),
('cancel', 'Canceled')
], default='draft')
last_modification = fields.Datetime(readonly=True)
26. class Order(model.Models):
_name = 'nursery.order'
def write(self, values):
# helper to "YYYY-MM-DD"
values['last_modification'] = fields.Datetime.now()
return super(Order, self).write(values)
def unlink(self):
# self is a recordset
for order in self:
if order.state == 'confirm':
raise UserError("You can not delete confirmed orders")
return super(Order, self).unlink()
31. ● For complex values
● Trigger for recompute
● Stored or not in database
32. class Plants(models.Model):
_name = 'nursery.plant'
order_count = fields.Integer(compute='_compute_order_count',
store=True,
string="Total sold")
@api.depends('order_ids')
def _compute_order_count(self):
for plant in self:
plant.order_count = len(plant.order_ids)
33. ● Triggered after every creation or
modification
● Instead of overriding create & write
34. class Plants(models.Model):
_name = 'nursery.plant'
number_in_stock = fields.Integer()
@api.constrains('order_count', 'number_in_stock')
def _check_available_in_stock(self):
for plant in self:
if plant.number_in_stock and
plant.order_count > plant.number_in_stock:
raise UserError("There is only %s %s in stock but %s were sold"
% (plant.number_in_stock, plant.name, plant.order_count))
35. ● Display information in a tile
● Add a picture of the plant
● Aggregated view to visualize the
flow (will need a search view)
44. #odooexperience
Based on work from Thibault DELAVALLEE and Martin TRIGAUX, that was based on work from Damien BOUVY
https://github.com/tivisse/odoodays-2018
EXPERIENCE
2018