Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADD] estate: Create an estate app #332

Draft
wants to merge 24 commits into
base: 18.0
Choose a base branch
from

Conversation

maap-odoo
Copy link

  • Created an estate application for Odoo
  • Added access rights in ir.model.access.csv for estate.property
  • Created XML data files for actions and menus in the estate module
  • Defined three-level menu structure for property management
  • Implemented default values and field attributes for estate.property
  • Added active and state fields with predefined behaviors

- Created an estate application for Odoo
- Added access rights in `ir.model.access.csv` for `estate.property`
- Created XML data files for actions and menus in the estate module
- Defined three-level menu structure for property management
- Implemented default values and field attributes for `estate.property`
- Added `active` and `state` fields with predefined behaviors
@robodoo
Copy link

robodoo commented Feb 6, 2025

Pull request status dashboard

Copy link

@sami-odoo sami-odoo Feb 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordering does not look proper. Take the help of code base to check the order in which we specify the keys of manifest

• Implemented list view to display key property details in a structured manner.
• Designed form view with grouped fields and a notebook for better organization.
• Created search view with availability filter and postcode grouping.
…tate app

• Created Property Type, Property Tag, and Property Offer models.
• Added `Many2one`, `Many2many`, and `One2many` relations between models.
• Updated property views to include types, tags, and offers with widgets.
…tate app

• Created Property Type, Property Tag, and Property Offer models.
• Added `Many2one`, `Many2many`, and `One2many` relations between models.
• Updated property views to include types, tags, and offers with widgets.
• Added action buttons to trigger business logic in the estate module
• Implemented 'Sold' and 'Cancel' actions for properties with state validation
• Added 'Accept' and 'Refuse' actions for property offers
• Ensured 'Accept' action updates buyer and selling price for property
• Added a custom form view for property offers page.
• Removed the property name field from the form view of the offer.
• Improved error handling for invalid transitions.
• Ensured only one offer can be accepted per property.
• Prevented selling a property unless an offer is accepted.
• Ensured `expected_price`, `selling_price`, and `offer_price` are positive.
• Added unique constraints for `property type` and `property tag` names.
• Added a constraint to prevent selling a property below 90% of expected price.
• Introduced inline list view for property types.
• Added status bar widget for property state visualization.
• Set default and manual ordering for multiple models.
• Included sequence field for property types to enable manual ordering.
• Prevented property type editing directly from the property form.
• Enabled color picker for property tags.
• Adjusted button visibility based on property state.
• Made garden-related fields invisible when no garden exists.
• Restricted offer submissions when property is in specific states.
• Made list views for offers and tags editable.
• Set availability date as optional and hidden by default.
• Applied visual decorations for various property and offer states.
• Implemented default filter to display available properties.
• Enhanced search filter for living area.
• Added stat button to property types to monitor associated offers.
• Filtered stat button results to display only relevant offers.
Change the sequence of 'estate_property_offer_views.xml' in the manifest file
• Restricted deletion of properties to when state is “New” or “Cancelled” using
  @api.ondelete.
• Updated property state to “Offer Received” upon new offer creation and blocked
  offers lower than the best existing offer.
• Extended the Users form view to show the salesperson’s associated properties.
• Created estate_account module linking real estate and accounting.
• Override action_sold() to trigger customer invoice creation.
• Added invoice lines: 6% of price + 100.00 admin fee.
• Used Command.create() for One2many invoice lines.
• Implemented a Kanban view displaying property details.
• Ensured best price is shown only when an offer is received and selling price
  only when an offer is accepted.
• Applied default grouping by property type.
• Disabled drag-and-drop for structured data representation.
• Added a custom house icon for the Real Estate module.
…ices

• Ensured compliance with Odoo guidelines and best practices.
• Refactored models to enhance data integrity and maintainability.
• Defined security groups and record rules to restrict access based on roles.
• Restricted property visibility to company-specific agents.
• Included demo data for properties, offers, and tags.
• Ensured offer dates are dynamically set relative to installation.
• Formatted code to align with Odoo coding guidelines.
…tatements

• Added a chatter to the Property Form.
• Refactored the import statements to match the coding guidelines.
• Changed the main template of Kanban view from kanban-box to card.
• Previously, an exception could be created before validating the user's access
  rights, leading to unintended behavior.
• Now, the `check_access('write')` is executed first, and only if it succeeds
  does the system proceed with creating the invoice.
• If the user lacks the necessary permissions, an `AccessError` is raised
  immediately, preventing any unintended record creation.
• Created a 'Properties' website to list available properties.
• Added a new field image to the estate property and added demo images.
• Added Website button in the Estate menu.
• Implemented a grid layout for property listings with images.
• Added pagination to display a maximum of 6 properties per page.
• Created property offers report with templates.
• Added sub-templates for reuse across reports.
• Implemented inheritance in estate_account module.
…tion

• Previously, agents could modify the salesperson field, which was unintended.
  Now, only managers have write access.
• The error message is wrapped in `_()`, ensuring it appears in the user's
  language if a translation is available.
• Added test cases for following.
• Properties cannot be sold if no offer is accepted
• Offers cannot be accepted on already sold properties
• Garden area and orientation automatically reset when garden checkbox is
  unchecked
• Best price is correctly calculated from multiple offers
• Lower offers are rejected when higher ones exist
• Added estate.offer.wizard TransientModel for bulk offer creation
• Added wizard form view with price, validity and buyer fields
• Added action to create offers on multiple properties simultaneously
• Created an initial Counter component inside Playground to track state.
• Extracted Counter logic into a separate component for reusability.
• Created a reusable Card component with title and content props.
• Updated Card component to use `t-out` instead of `t-esc` for rendering HTML.
• Introduced markup() in Playground to handle HTML content.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants