Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Building_list/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.contrib import admin
from .models import Building, Lecture, Reservation
from .models import Room, Lecture, Reservation

admin.site.register(Building)
admin.site.register(Room)
admin.site.register(Lecture)
admin.site.register(Reservation)
Empty file added Building_list/form.py
Empty file.
28 changes: 14 additions & 14 deletions Building_list/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Generated by Django 3.1 on 2020-08-28 01:43
# Generated by Django 3.1 on 2020-08-28 10:30

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion

Expand All @@ -10,38 +9,39 @@ class Migration(migrations.Migration):
initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='Lecture',
name='Room',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('number', models.CharField(default='', max_length=10)),
('floor', models.CharField(default='', max_length=10)),
('class_time', models.CharField(default='', max_length=20)),
('available_time', models.CharField(default='', max_length=20)),
('on_off', models.CharField(choices=[('사용중', '사용중'), ('빈강의실', '빈강의실')], default='빈강의실', max_length=50)),
('day_of_the_week', models.CharField(default='', max_length=20)),
('day_of_the_week', models.CharField(choices=[('월', '월'), ('화', '화'), ('수', '수'), ('목', '목'), ('금', '금'), ('토', '토'), ('일', '일')], default='월', max_length=20)),
('available_time', models.TimeField(default='')),
],
),
migrations.CreateModel(
name='Reservation',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('purpose', models.TextField(default='', max_length=100)),
('use_time', models.CharField(default='', max_length=20)),
('lecture', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lecture_list', to='Building_list.lecture')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to=settings.AUTH_USER_MODEL)),
('start_time', models.TimeField(default='')),
('finish_time', models.TimeField(default='')),
('floor', models.TextField(default='', max_length=10)),
('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reservation_room', to='Building_list.room')),
],
),
migrations.CreateModel(
name='Building',
name='Lecture',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(default='', max_length=200)),
('lecture', models.ManyToManyField(to='Building_list.Lecture')),
('name', models.TextField(default='', max_length=100)),
('start_time', models.TimeField(default='')),
('finish_time', models.TimeField(default='')),
('floor', models.TextField(default='', max_length=10)),
('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lecture_room', to='Building_list.room')),
],
),
]
18 changes: 0 additions & 18 deletions Building_list/migrations/0002_auto_20200828_1050.py

This file was deleted.

27 changes: 27 additions & 0 deletions Building_list/migrations/0002_auto_20200828_2145.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Generated by Django 3.1 on 2020-08-28 21:45

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('Building_list', '0001_initial'),
]

operations = [
migrations.RemoveField(
model_name='lecture',
name='floor',
),
migrations.AddField(
model_name='room',
name='floor',
field=models.TextField(default='', max_length=10),
),
migrations.AlterField(
model_name='room',
name='day_of_the_week',
field=models.CharField(choices=[('mon', '월'), ('tue', '화'), ('wed', '수'), ('thu', '목'), ('fri', '금')], default='월', max_length=20),
),
]
18 changes: 18 additions & 0 deletions Building_list/migrations/0003_lecture_number.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.1 on 2020-08-28 23:41

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('Building_list', '0002_auto_20200828_2145'),
]

operations = [
migrations.AddField(
model_name='lecture',
name='number',
field=models.CharField(default='', max_length=10),
),
]
86 changes: 57 additions & 29 deletions Building_list/models.py
Original file line number Diff line number Diff line change
@@ -1,45 +1,73 @@
from django.db import models
from django.conf import settings
from django.utils import timezone
from datetime import datetime, timedelta, date

FlAG = [
('사용중', '사용중'),
('빈강의실', '빈강의실'),
]
WEEK = [
('월', '월'),
('화', '화'),
('수', '수'),
('목', '목'),
('금', '금'),
('토', '토'),
('일', '일'),
WEEK = [ #첫번재가 장고, 두번째가 탬플릿
('mon', '월'),
('tue', '화'),
('wed', '수'),
('thu', '목'),
('fri', '금'),
]
class Lecture(models.Model):
#호
class Room(models.Model):
#
number = models.CharField(max_length=10, default='')
#층
floor = models.CharField(max_length=10, default='')
#수업시간(24시 기준)
class_time = models.CharField(max_length=20, default='')
#사용가능시간
available_time = models.CharField(max_length=20, default='')
#사용여부
# 사용여부
on_off = models.CharField(max_length=50, choices=FlAG, default='빈강의실')
#요일
day_of_the_week = models.CharField(max_length=20, choices=WEEK, default='월')
#사용 가능 시간
available_time = models.TimeField(default='')
#층
floor = models.TextField(max_length=10, default='')

class Building(models.Model):
#건물이름
name = models.TextField(max_length=200, default='')
#강의 모델
lecture = models.ManyToManyField(Lecture)
def __str__(self):
return self.number+"호/ "+self.day_of_the_week+ "요일"

class Lecture(models.Model):
# 룸 모델
room = models.ForeignKey(Room, on_delete=models.CASCADE, related_name="lecture_room")
# 강의 명
name = models.TextField(max_length=100, default='')
#수업 시작 시간
start_time = models.TimeField(default='')
#수업 종료 시간
finish_time = models.TimeField(default='')
#강의 순서
number = models.CharField(max_length=10, default='')

def __str__(self):
return self.name

def created_string(self):
time_now = timezone.now().time()

time = datetime.combine(date.min, self.start_time)-datetime.combine(date.min, time_now)
if time < timedelta(minutes=1):
return 'dfadf'
elif time < timedelta(hours=1):
return str(int(time.seconds / 60)) + '분 전'
elif time < timedelta(days=1):
return str(int(time.seconds / 3600)) + '시간 전'
else:
return 'false'

class Reservation(models.Model):
# 강의 모델
lecture = models.ForeignKey(Lecture, on_delete=models.CASCADE, related_name="lecture_list")
# 목적
# 모델
room = models.ForeignKey(Room, on_delete=models.CASCADE, related_name="reservation_room")
# 강의 명
purpose = models.TextField(max_length=100, default='')
# 사용시간
use_time = models.CharField(max_length=20, default='')
# 유저모델
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='photos')
#예약 시작 시간
start_time = models.TimeField(default='')
#예약 종료 시간
finish_time = models.TimeField(default='')
#층
floor = models.TextField(max_length=10, default='')

def __str__(self):
return self.name
8 changes: 8 additions & 0 deletions Building_list/templates/Building_list/building_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{% load static %}

{% block title %}
{% endblock %}

{% block content %}
<a href="{% url 'Building_list:option_check' %}" style="font-family: 'NanumSquareRound',sans-serif;">04 교육과학관</a>
{% endblock %}
32 changes: 32 additions & 0 deletions Building_list/templates/Building_list/option_check.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{% load static %}

{% block title %}
{% endblock %}

{% block content %}
<div>
<form action="{% url 'Building_list:room_list' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div>
<p style="font-family: 'NanumSquareRound';font-style: normal;font-weight: 800;font-size: 22px;line-height: 22px;color: #000000; ">옵션 선택</p>
<p>전체해지</p>
<input type="submit" value="적용">
</div>
<p>요일</p>
<div>
<label><input type="radio" value="mon" name="day_of_the_week"> 월</label>
<label><input type="radio" value="tue" name="day_of_the_week"> 화</label>
<label><input type="radio" value="wed" name="day_of_the_week"> 수</label>
<label><input type="radio" value="thu" name="day_of_the_week"> 목</label>
<label><input type="radio" value="fri" name="day_of_the_week"> 금</label>
</div>
<p>층 수</p>
<div>
<label><input type="radio" value="all" name="floor">전체</label>
<label><input type="radio" value="1" name="floor">1층</label>
<label><input type="radio" value="2" name="floor">2층</label>
<label><input type="radio" value="3" name="floor">3층</label>
</div>
</form>
</div>
{% endblock %}
17 changes: 17 additions & 0 deletions Building_list/templates/Building_list/room_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{% load static %}

{% block title %}
{% endblock %}

{% block content %}
<div>
{% if lectures %}
{% for temp in lectures %}
<div onclick ="location.href='{% url 'Building_list:room_detail' temp.id %}'">
<p>{{ temp.name }}</p>
<p>{{ temp.created_string }}</p>
</div>
{% endfor %}
{% endif %}
</div>
{% endblock %}
18 changes: 18 additions & 0 deletions Building_list/templates/Building_list/room_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{% load static %}

{% block title %}
{% endblock %}

{% block content %}
<div>
{% if rooms %}
{% for temp in rooms %}
<div onclick ="location.href='{% url 'Building_list:room_detail' temp.id %}'">
<p>{{ temp.number }}</p>
<p>{{ temp.available_time }}</p>
<p>{{ temp.on_off }}</p>
</div>
{% endfor %}
{% endif %}
</div>
{% endblock %}
5 changes: 5 additions & 0 deletions Building_list/urls.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from .views import *

app_name = "Building_list"
urlpatterns = [
path('', building_list, name='building_list'),
path('option_check/', option_check, name='option_check'),
path('room_list/', room_list, name='room_list'),
path('room_detail/<int:room_id>/', room_detail, name='room_detail'),
]
33 changes: 32 additions & 1 deletion Building_list/views.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
from django.shortcuts import render
from .models import Reservation,Room,Lecture

# Create your views here.

def building_list(request):
return render(request, "Building_list/building_list.html")

def option_check(request):
return render(request, "Building_list/option_check.html")

def room_list(request):
if request.method == 'POST':
day_of_the_week = request.POST['day_of_the_week']
floors = request.POST['floor']

rooms = Room.objects.all()
lectures = Lecture.objects.all()
room_dict = {}
for i in range(0, rooms.__len__()):
temp = rooms[i]
if (temp.day_of_the_week == day_of_the_week) and (temp.floor == floors):
room_dict[temp] = i

return render(request, "Building_list/room_list.html", {"rooms": room_dict})

def room_detail(request, room_id):
lectures = Lecture.objects.all()
lecture_dict = {}
for i in range(0, lectures.__len__()):
tmp = lectures[i]
if tmp.room == Room.objects.get(id=room_id):
lecture_dict[tmp] = i

return render(request, "Building_list/room_detail.html", {"lectures": lecture_dict})
2 changes: 1 addition & 1 deletion Kuing/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@

USE_L10N = True

USE_TZ = True
USE_TZ = False


# Static files (CSS, JavaScript, Images)
Expand Down
Binary file modified db.sqlite3
Binary file not shown.
1 change: 1 addition & 0 deletions layout/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="//cdn.rawgit.com/innks/NanumSquareRound/master/nanumsquareround.min.css">
</head>
<body style="background-color:#F9F9F9;">
<div>
Expand Down