Add documentation and source
Added documentation, source and extra files.
This commit is contained in:
49
source/advanced/various/models/room.py
Normal file
49
source/advanced/various/models/room.py
Normal file
@ -0,0 +1,49 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class Room(models.Model):
|
||||
"""
|
||||
Room definition.
|
||||
|
||||
"""
|
||||
|
||||
name = models.CharField(max_length=32, blank=False, unique=True, verbose_name=_("name"))
|
||||
description = models.TextField(blank=True, verbose_name=_("description"))
|
||||
width = models.PositiveIntegerField(default=0, help_text=_("centimeters"), verbose_name=_("width"))
|
||||
length = models.PositiveIntegerField(default=0, help_text=_("centimeters"), verbose_name=_("length"))
|
||||
height = models.PositiveIntegerField(default=0, help_text=_("centimeters"), verbose_name=_("height"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("room")
|
||||
verbose_name_plural = _("rooms")
|
||||
|
||||
def get_area(self) -> int:
|
||||
"""
|
||||
Get the area of the room.
|
||||
|
||||
Returns:
|
||||
Area of the room in square centimeters.
|
||||
|
||||
"""
|
||||
return self.width * self.length
|
||||
|
||||
def get_volume(self) -> int:
|
||||
"""
|
||||
Get the volume of the room.
|
||||
|
||||
Returns:
|
||||
Volume of the room in cube centimeters.
|
||||
|
||||
"""
|
||||
return self.width * self.length * self.height
|
||||
|
||||
def is_empty(self) -> bool:
|
||||
"""
|
||||
Tell if the room is empty (has no volume).
|
||||
|
||||
Returns:
|
||||
Whether the room has no volume (zero).
|
||||
|
||||
"""
|
||||
return self.width * self.length * self.height == 0
|
Reference in New Issue
Block a user