I checked the module and I need to admit that for a first module in odoo it's quite impressive what you have managed to implement. So good job!
You have used most of odoo standard functionalities properly. Especially when some people try to start with odoo they have its own "ways" to implement different things, so that is great that you have managed to do it as odoo recommends.
I have a list of improvements that you can implement to make your module even better:
Customer model
That is great, you have used your own module to have a list of visitors, it gives you tons of flexibility. However, odoo has its own module that is called Contact and there is already implemented abstraction of something called "customer".
I think what you can do is replace your hotel.customer model with res.partner model. Then you will learn how to extend existing modules in odoo.
Room Overview
It would be nice to see in the room model when it's occupied. You can implement relation to reservation model to get data about room reservation. To do that, you can add calendar view in the reservation model and implement a smart button to open that view with the currently open room.
More Smart Buttons =)
Smart buttons are amazing in odoo, they give you possibility to quickly access related data. By implementing smart buttons you can also validate if your data model is correct, if you can with ease create smart buttons that connect related object your data model is probably quite well-made. You can add smart button to almost every model:
transaction (display list of transactions for this reservation)
reservation (display reserved rooms)
Customer (display reservation of this customer, display transaction made by customer)
Chatter
Chatter in odoo is one of the best thing in the world =). You can track changes on the model, you can send emails directly from chatter, write some notes and create system activities. You can implement chatter in every model where it makes sense to track changes, and then you can decide on what field makes sense to track.
Demo data
I had some problems with room types and classes, and differences between those, by adding demo data you can show how the model is meant to be used. You can also use demo data in tests.
Add Tests
Odoo support testing. I think that would be good to learn that too. It helps to keep your module up and running while doing some changes. You can then just run test, and you know if your module is working after some changes.
Other Small Changes
Move buttons to header section in form view of reservation. Then you don't need to search for those in different tabs, and you have them right a way on top of the screen.
Menu items, you have 2 menu item for reservations and transaction. I think 1 is not necessary (the one for canceled), you can achieve that by filters in a search view. You did it quite well already! It will give you less unnecessary views to manage.
You use a lot of computed field, some of them does not need to be computed or can be computed in one goal (in 1 function)
You can use data range widget for reservation period. It connects 2 date fields, and you can select range more easily.
Automate statuses, when it comes to the room statuses you have statuses, but they need to be set manually. You can maybe think of an automated status field that will be calculated base on reservation data.
I checked the module and I need to admit that for a first module in odoo it's quite impressive what you have managed to implement. So good job! You have used most of odoo standard functionalities properly. Especially when some people try to start with odoo they have its own "ways" to implement different things, so that is great that you have managed to do it as odoo recommends.
I have a list of improvements that you can implement to make your module even better:
Customer model
That is great, you have used your own module to have a list of visitors, it gives you tons of flexibility. However, odoo has its own module that is called Contact and there is already implemented abstraction of something called "customer". I think what you can do is replace your
hotel.customer
model withres.partner
model. Then you will learn how to extend existing modules in odoo.Room Overview
It would be nice to see in the room model when it's occupied. You can implement relation to reservation model to get data about room reservation. To do that, you can add calendar view in the reservation model and implement a smart button to open that view with the currently open room.
More Smart Buttons =)
Smart buttons are amazing in odoo, they give you possibility to quickly access related data. By implementing smart buttons you can also validate if your data model is correct, if you can with ease create smart buttons that connect related object your data model is probably quite well-made. You can add smart button to almost every model:
Chatter
Chatter in odoo is one of the best thing in the world =). You can track changes on the model, you can send emails directly from chatter, write some notes and create system activities. You can implement chatter in every model where it makes sense to track changes, and then you can decide on what field makes sense to track.
Demo data
I had some problems with room types and classes, and differences between those, by adding demo data you can show how the model is meant to be used. You can also use demo data in tests.
Add Tests
Odoo support testing. I think that would be good to learn that too. It helps to keep your module up and running while doing some changes. You can then just run test, and you know if your module is working after some changes.
Other Small Changes