Copropiedad Integral | Development update

in #utopian-io6 years ago (edited)

Repository

Copropiedad Integral repository

A condo is a type of real estate divided into several units that are each separately owned, surrounded by common areas jointly owned.

Copropiedad Integral has been created to provide condos (condominiums, horizontal property, co-properties) managers with the necessary tools to manage administration and communication with co-owners and leaseholders in a simple and safe way. Development version is available here.

New Features

Unit form update.

The unit form has two embed formsets. A formset to save and update owners data, and a formset to save and update leaseholders data. Although, a unit can have several owners, only one must have assigned as the main owner, and in the same way it must work for the leaseholders. A unit can have several registered leaseholders, only one must be assigned like the main leaseholder. This will make it easier to manage the data update and the owners and leaseholders notification, avoiding to send the same notification about a unit to multiple registered emails. Previously, the main owner and the main leaseholder were assigned by selecting the first element in the formset. In this development update, this has bee changed.

The is_main field has been added to the owners formset. In the Python side, this field is a Boolean field in the model, and is a Checkbox in the form. But checkboxes some times are not nice for the frontend. So, this field has been hidden, a button element has been added to the form, and by using JS, click actions on this button change the is_main checkbox value. In the following image we can find this new button called "Main owner". There is a button for each form in the owner formset.


Screen Shot 2018-07-06 at 3.57.37 PM.png

Users must select one owner as "main owner" of the unit, but they only can select one. So, Backend (Python side) and frontend(Javascript) validations were implemented. It is necessary to be sure to control this requirement, since if in a unit there are two main owners registered, or none, errors will appear in the future. When users click on the "Main owner" button, the other buttons will be disabled.


ezgif.com-video-to-gif.gif

For the Leaseholders formset, the "is_main" field works in the same way that for the Owner formset, the same methodology and the same validations were added to the leaseholders formset.

As I said previously, some times the checkboxes are not very nice in the frontend. For this reason, the "delete" checkbox in the owner formset and in the leaseholders formset has been hidden, and, in the same way that works for the "is_main" checkbox, a button element has been added and is used to manage the "delete" checkbox value by using JS. Previously, the "delete" input looked like this (a checkbox at the end of the form):


Screen Shot 2018-07-06 at 3.39.00 PM.png

Now, the input value can be changed by clicking the "Delete" button:


ezgif.com-video-to-gif (1).gif

if I must say that there is something of Django with which I do not feel very comfortable working, is with formsets, they have always presented difficulties for me, but, the Django formset is a great functionality to manage multiple forms of the same instance in a simple post request.

Code changes related to this update can be found in this PULL REQUEST, and in this PULL REQUEST.

Residents administration.

A way to allow administrators to manage the residents registered in each unit (Apartment, house, office) has been added. Administrators can create multiple "Emergency contacts" for each resident.

In the unit detail page, it's now available the Residentes module. Condo administrators can now register residents for each unit by clicking the "Register resident" button:


Screen Shot 2018-07-06 at 5.25.57 PM.png

The following form is displayed:


Screen Shot 2018-07-06 at 5.43.51 PM.png

As you can see, we have another Django formset here. This formset is used to manage the creation of multiple Emergency contact assigned to a resident. The https://github.com/xdan/datetimepicker library has been integrated to allow users enter the value of the birthdate field in a very simple way.


Screen Shot 2018-07-06 at 5.41.17 PM.png

In the unit detail page, we can find the list of registered residents:


Screen Shot 2018-07-06 at 5.52.06 PM.png

By clicking the "Detail" button, the resident detail view is displayed:


Screen Shot 2018-07-06 at 5.53.41 PM.png

By clicking the "Edit" button, the resident object will be instanced in the same form (create form) and users will be able to update all information about a resident.

By clicking the "Delete" button, users will be redirected to a confirm page, where they must select it they are sure that want to delete the selected resident:


Screen Shot 2018-07-06 at 5.55.53 PM.png

Detailed code changes related to this functionality can be found in this PULL REQUEST

English translation for these new functionalities can be found in this PR


GitHub Account

https://github.com/aaquirogal
PR 1
PR 2
PR 3
PR 4


Roadmap

With the help of the company http://www.servisolucionesph.com/, we have designed a group of basic functionalities to implement in next days:

  1. parking information.
  2. pet information management.
  3. Vehicles information management.
  4. Domestic worker information management.
  5. Authorized visitors information management.
  6. Owner and leaseholders data update.
  7. Make a reservation for rent Social Hall or Auditoriums.
  8. Generate financial and administrative reports for consultation at the Ordinary or Extraordinary Assembly.
  9. Information Documents (Cleaning Awareness, Recycling Campaigns, Portfolio Collection, documents of Coexistence).
  10. Attach fixed documents of the co-ownership for permanent consultation (Coexistence Manual, Horizontal Property Regulation, Administration Attention Schedules, Rental Schedules, Rental Costs ...).
  11. Providers database.
  12. Online voting.
  13. Sending of Mass Collection Accounts through e-mail.
  14. Residents administration.
  15. Condo roles.

How to contribute?

Copropiedad Integral has been developed using the Django framework. You can fork the project, and run it locally is very easy. Follow the steps described in the open source repository installation guide. The project has been configured using Docker. you only need to install Docker and follow these steps.

If you want to contribute, please join my Discord


Have happy days ✌

Sort:  

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Hey @kit.andres
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 10 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 14 SBD worth and should receive 74 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Coin Marketplace

STEEM 0.29
TRX 0.11
JST 0.033
BTC 63458.69
ETH 3084.37
USDT 1.00
SBD 3.99