Merge branch 'master' of ssh://git.wiai.de:22222/mgoetz/roofis2

This commit is contained in:
Lamprecht 2018-06-09 03:42:10 +02:00
commit fac7e14345
9 changed files with 339 additions and 12 deletions

View File

@ -177,11 +177,16 @@ LOGGING = {
# }, # },
}, },
'loggers': { 'loggers': {
# 'roomservice': {
# 'handlers': ['console'],
# 'level': 'INFO',
# },
'roomservice': { 'roomservice': {
'handlers': ['console'], 'handlers': ['console'],
'level': 'INFO', 'level': 'INFO',
}, },
'respool.management.sample_data_creation': { 'roomservice.management.sample_data_creation': {
'handlers': ['console'], 'handlers': ['console'],
'level': 'DEBUG' 'level': 'DEBUG'
} }

View File

@ -1,5 +1,6 @@
from django.contrib import admin from django.contrib import admin
from .models import Staff, Room, RoomType, BookingGroup, Booking, Equipment, Location, Buildings, NumEquipment from .models import Staff, Room, RoomType, BookingGroup, Booking, Equipment, Location, Building, NumEquipment, \
AccessPoint
# Register your models here. # Register your models here.
admin.site.register(Staff) admin.site.register(Staff)
@ -9,5 +10,6 @@ admin.site.register(BookingGroup)
admin.site.register(Booking) admin.site.register(Booking)
admin.site.register(Equipment) admin.site.register(Equipment)
admin.site.register(Location) admin.site.register(Location)
admin.site.register(Buildings) admin.site.register(Building)
admin.site.register(NumEquipment) admin.site.register(NumEquipment)
admin.site.register(AccessPoint)

View File

@ -0,0 +1,9 @@
from django.core.management.base import BaseCommand
from roomservice.management.sample_data_creation import data_creator
class Command(BaseCommand):
help = "Creates sample data and inserts it to db"
def handle(self, *args, **options):
data_creator.create()

View File

@ -0,0 +1,144 @@
from roomservice.models import RoomType, Room, NumEquipment, Building, Location, Equipment, Booking, BookingGroup, \
Staff, AccessPoint
from django.contrib.auth.models import User
import logging
import random
import datetime
logger = logging.getLogger(__name__)
LOCATIONS = ['Bamberg', 'Erlangen', 'Crailsheim', 'Hamburg', 'Chemnitz', 'Dresden', 'Sebnitz', 'Gunzenhausen',
'Nürnberg']
BUILDINGS = ['253', '274', '134', '256', '142', '432', '652', '333', '233', '444', '332']
ROOMTYPE = ['Office', 'Conference Room', 'Teaching Room']
BOOKING_GROUP = ['Boss', 'SectionA', 'SectionB', 'SectionC', 'Standard']
EQUIPMENT = ['Beamer', 'Flipchart']
def create():
logger.info('Location Count: {}'.format(Location.objects.count()))
create_locations(LOCATIONS)
logger.info('Location Count: {}'.format(Location.objects.count()))
logger.info('Building Count: {}'.format(Building.objects.count()))
create_buildings(BUILDINGS)
logger.info('Building Count: {}'.format(Building.objects.count()))
logger.info('RoomType Count: {}'.format(RoomType.objects.count()))
create_room_type(ROOMTYPE)
logger.info('RoomType Count: {}'.format(RoomType.objects.count()))
logger.info('BookingGroup Count: {}'.format(BookingGroup.objects.count()))
create_booking_group(BOOKING_GROUP)
logger.info('BookingGroup Count: {}'.format(BookingGroup.objects.count()))
logger.info('Equipment Count: {}'.format(Equipment.objects.count()))
create_equipment(EQUIPMENT)
logger.info('Equipment Count: {}'.format(Equipment.objects.count()))
logger.info('Staff Count: {}'.format(Staff.objects.count()))
create_staff()
logger.info('Staff Count: {}'.format(Staff.objects.count()))
logger.info('Room Count: {}'.format(Room.objects.count()))
create_room()
logger.info('Room Count: {}'.format(Room.objects.count()))
logger.info('Booking Count: {}'.format(Booking.objects.count()))
create_booking()
logger.info('Booking Count: {}'.format(Booking.objects.count()))
logger.info('NumEquipment Count: {}'.format(NumEquipment.objects.count()))
create_num_equipment()
logger.info('NumEquipment Count: {}'.format(NumEquipment.objects.count()))
logger.info('AccessPoint Count: {}'.format(AccessPoint.objects.count()))
create_access_point()
logger.info('AccessPoint Count: {}'.format(AccessPoint.objects.count()))
def create_locations(names):
for name in names:
location, _ = Location.objects.get_or_create(name=name)
def create_buildings(names):
for name in names:
building, _ = Building.objects.get_or_create(name=name, location=random.choice(Location.objects.all()))
def create_room_type(types):
for type in types:
building, _ = RoomType.objects.get_or_create(type=type)
def create_booking_group(names):
for name in names:
booking_group, _ = BookingGroup.objects.get_or_create(name=name)
def create_equipment(names):
for name in names:
equipment, _ = Equipment.objects.get_or_create(name=name)
def create_staff():
for i in range(1, 30):
user, _ = User.objects.get_or_create(username='MannFrau{}'.format(i), email='mann{}@frau.de'.format(i),
password='1234abcdef#')
staff, _ = Staff.objects.get_or_create(user=random.choice(User.objects.all()))
staff.booking_group.add(random.choice(BookingGroup.objects.all()))
# booking_group = random.choice(BookingGroup.objects.all())
staff.save()
def create_room():
for i in range(1, 40):
room, _ = Room.objects.get_or_create(building=random.choice(Building.objects.all()),
room_number=random.randint(100, 956),
capacity=random.randint(10, 400), seating=random.randint(0, 1),
barrier_free=random.randint(0, 1), cooling=random.randint(0, 1),
room_type=random.choice(RoomType.objects.all()),
floor=random.randint(1, 6),
admin=random.choice(BookingGroup.objects.all()),
service_staff=random.choice(Staff.objects.all()))
def create_booking():
for i in range(1, 80):
year = random.choice(range(2018, 2019))
month = random.choice(range(1, 12))
day = random.choice(range(1, 28))
random_start_date = datetime.datetime(year, month, day)
delta = random.choice(range(0, 2))
random_enddate_date = random_start_date + datetime.timedelta(delta)
hour = random.choice(range(6, 22))
minute = random.choice(range(1, 59))
start_time = datetime.datetime(year, month, day, hour=hour, minute=minute)
delta = random.choice(range(0, 3))
end_time_time = start_time + datetime.timedelta(hours=delta)
booking, _ = Booking.objects.get_or_create(room=random.choice(Room.objects.all()),
staff=random.choice(Staff.objects.all()),
start_date=random_start_date, end_date=random_enddate_date,
start_time=start_time, end_time=end_time_time,
intervall=random.choice(range(0, 3)))
def create_num_equipment():
for i in range(1, 80):
num_equipment = NumEquipment.objects.get_or_create(room=random.choice(Room.objects.all()),
equipment=random.choice(Equipment.objects.all()),
count=random.choice(range(1, 3)))
def create_access_point():
for i in range(1, 25):
access_point, _ = AccessPoint.objects.get_or_create(mac_address=''.join(
random.choices(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'], k=12)), )
for i in range(1, random.randint(1, 4)):
access_point.rooms.add(random.choice(Room.objects.all()))
access_point.save()

View File

@ -10,7 +10,7 @@ class Location(models.Model):
return '{}'.format(self.name) return '{}'.format(self.name)
class Buildings(models.Model): class Building(models.Model):
name = models.CharField(max_length=16) name = models.CharField(max_length=16)
location = models.ForeignKey(Location, on_delete=models.CASCADE) location = models.ForeignKey(Location, on_delete=models.CASCADE)
@ -42,7 +42,7 @@ class Staff(models.Model):
class Room(models.Model): class Room(models.Model):
building = models.ForeignKey(Buildings, on_delete=models.CASCADE) building = models.ForeignKey('Building', on_delete=models.CASCADE)
room_number = models.CharField(max_length=16) room_number = models.CharField(max_length=16)
capacity = models.IntegerField() capacity = models.IntegerField()
seating = models.BooleanField() seating = models.BooleanField()
@ -91,3 +91,11 @@ class Booking(models.Model):
def __str__(self): def __str__(self):
return '{} - {} - {}'.format(self.room.room_number, self.start_date.strftime('%Y - %m - %d'), return '{} - {} - {}'.format(self.room.room_number, self.start_date.strftime('%Y - %m - %d'),
self.end_date.strftime('%Y - %m - %d')) self.end_date.strftime('%Y - %m - %d'))
class AccessPoint(models.Model):
mac_address = models.CharField(max_length=12)
rooms = models.ManyToManyField(Room)
def __str__(self):
return '{}'.format(self.mac_address)

View File

@ -1,10 +1,169 @@
{% extends 'base.jinja' %} {% extends 'base.jinja' %}
{% block content %} {% block content %}
<h1>Ressourcenpool Bamberg</h1> <table class="table table-hover table-light">
<p><strong>Impressum</strong></p> <thead>
<p>Anbieter:<br />Max Mustermann<br />Musterstraße 1<br />96049 Bamberg</p> <tr>
<p>Kontakt:<br />Telefon: 0951/12345678<br />Telefax: 0951/1234567<br />E-Mail: mail@mustermann.de<br />Website: www.mustermann.de</p> <th scope="col">Time</th>
<p> </p> <th scope="col">Monday</th>
<p>Bei redaktionellen Inhalten:</p> <th scope="col">Tuesday</th>
<p>Verantwortlich nach § 55 Abs.2 RStV<br />Moritz Schreiberling<br />Musterstraße 2<br />96049 Bamberg</p> <th scope="col">Wednesday</th>
<th scope="col">Thursday</th>
<th scope="col">Friday</th>
<th scope="col">Saturday</th>
<th scope="col">Sunday</th>
</tr>
</head>
<tbody>
<tr>
<th scope="row">6:00 - 7:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">7:00 - 8:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">8:00 - 9:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">9:00 - 10:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">10:00 - 11:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">11:00 - 12:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">12:00 - 13:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">13:00 - 14:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">14:00 - 15:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">15:00 - 16:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">16:00 - 17:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">17:00 - 18:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">18:00 - 19:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">19:00 - 20:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">20:00 - 6:00</th>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
{% endblock %} {% endblock %}