[ADD] real_estate: Real Estate
Odoo Development Progress
Day 1: Odoo Architecture & Module Initialization Understood the core Odoo MVC architecture. Created a Real Estate module with a structured folder hierarchy. Defined the estate.property model with essential fields. Registered the model in the manifest and initialization files.
Day 2: Models, Security & Views Explored different field types and their usage in models. Configured security access rights using ACL rules. Designed List, Form, and Search views to manage property records. Created menu items and actions for easy navigation.
Day 3: Relationships & Computed Fields Established model relationships using Many2one , One2many and many2many. Implemented computed fields with @api.depends. Used domain filters to restrict dropdown selections dynamically.
Day 4: Action Buttons & Constraints Developed action buttons to manage property status. Applied SQL constraints for data integrity. Implemented Python constraints to enforce business rules.
Day 5: Enhanced Views, Widgets & Stat Buttons Implemented Inline Views to enable direct data entry within list views. Added 'statusbar' widgets for better visualization of property states. Enhanced List View Ordering with manual drag-and-drop reordering. Applied readonly, invisible, and conditional view attributes for dynamic behavior. Configured Default Filters to streamline record navigation. Introduced Stat Buttons in property type forms for quick access to related offers.
Day 6: Demo Data & Image Field Created demo data aligned with the real_estate models. Added an image field to properties for better visual representation.
Day 7: User Model Inheritance Learned about Python inheritance in Odoo. Inherited and extended the res.users model to integrate custom fields or behaviors.
Day 8: Module Linking & Invoice Creation Created a new module named estate_account. Linked estate_account to the real_estate module through inheritance. Enabled automatic invoice creation when a property is sold. Made minor tweaks and improvements for better workflow integration.
Day 9: Kanban View & UI Enhancements Designed and implemented a Kanban view for properties. Added a banner to property cards and an image to the app interface. Made minor functional improvements to enhance user experience.
Day 10: Downloadable Reports Created a detailed report of offers linked to properties, available for download. Made minor adjustments in views to improve usability and layout.
Day 11: Website Controller Integration Created a website controller to serve property details on the public website. Implemented dynamic routing for individual property pages. Ensured property details include price, type, description, and offers.
Day 12: Website Offer Submission Added an offer submission form to the property detail page. Enabled users to submit offers directly from the website. Implemented frontend validation for offer price and deadline dates. Enhanced website UI for a more intuitive user experience.
Day 13: Access Rights, Chatter, Wizard & Unit Testing Defined access rights for Agent and Manager roles with tailored permissions. Enabled chatter to track communications and activity on properties. Implemented a wizard to allow adding a single offer to multiple properties at once.
Day 14: Unit Testing, Owl Components & Reactivity Developed unit tests to ensure: Offers can’t be created on sold properties. Properties can’t be sold without an accepted offer. Garden area and orientation reset correctly on form changes. Improved UI layout for better property detail readability. Owl Components & Reactivity: Implemented Owl components with reactivity, props handling, and lifecycle hooks. Created Counter component using useState and extracted it from Playground. Developed Card component with validated title and content props. Enabled safe HTML rendering using t-out in the Card component. Integrated sum calculation feature using onChange callback in Counter. Built TodoList and TodoItem components with dynamic rendering via t-foreach. Applied conditional styling for completed todos using t-att-class.
