공지사항관리 기능 분리 및 개선
All checks were successful
Build And Test / build-and-push (push) Successful in 4m23s
All checks were successful
Build And Test / build-and-push (push) Successful in 4m23s
This commit is contained in:
@ -1,50 +0,0 @@
|
||||
{% extends "components/base.html" %}
|
||||
{% block title %}Create Notice{% endblock %}
|
||||
|
||||
{% block main_area %}
|
||||
<h1 class="pt-3">Create New Notice</h1>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<form method="POST" id="post-form">
|
||||
{% csrf_token %}
|
||||
<div class="mb-3">
|
||||
{{ form.title.label_tag }}
|
||||
{{ form.title }}
|
||||
</div>
|
||||
|
||||
<!-- 마크다운 에디터 -->
|
||||
<h2>contents</h2>
|
||||
|
||||
<div class="col-md-12">
|
||||
{{ form.contents }}
|
||||
</div>
|
||||
<!-- 버튼 -->
|
||||
<div class="d-flex justify-content-end mt-4">
|
||||
<button type="submit" class="btn btn-primary me-2">Create Post</button>
|
||||
<a href="{% url 'butler:notice_list' %}" class="btn btn-secondary">Cancel</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div id="preview" class="border p-3 bg-light h-100 overflow-auto"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 마크다운 파서 및 스크립트 -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||||
<script>
|
||||
// 마크다운 파서 초기화
|
||||
const md = window.markdownit();
|
||||
|
||||
// content 필드와 미리보기 연결
|
||||
const textarea = document.getElementById("markdown-editor");
|
||||
const preview = document.getElementById("preview");
|
||||
|
||||
// 실시간 미리보기 업데이트
|
||||
textarea.addEventListener("input", function () {
|
||||
const markdownContent = textarea.value; // textarea 내용 가져오기
|
||||
preview.innerHTML = md.render(markdownContent); // 마크다운 -> HTML 변환
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
@ -3,46 +3,46 @@
|
||||
{% block title %}Landing Page{% endblock %}
|
||||
|
||||
{% block main_area %}
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<!-- NoticeBoard Section -->
|
||||
<div class="col-md-6">
|
||||
<h2>Latest Notices</h2>
|
||||
<div class="row">
|
||||
{% for notice in notices %}
|
||||
<div class="col-12 mb-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ notice.title }}</h5>
|
||||
<p class="card-text">{{ notice.content|truncatewords:20 }}</p>
|
||||
<a href="{% url 'butler:notice_detail' notice.id %}" class="btn btn-primary">View Notice</a>
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<!-- NoticeBoard Section -->
|
||||
<div class="col-md-6">
|
||||
<h2>Latest Notices</h2>
|
||||
<div class="row">
|
||||
{% for notice in board_notices %}
|
||||
<div class="col-12 mb-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ notice.title }}</h5>
|
||||
<p class="card-text">{{ notice.contents|truncatechars:50 }}</p>
|
||||
<a href="{{ notice.get_absolute_url }}" class="btn btn-primary">View Notice</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No notices available.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No notices available.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- Blog Posts Section -->
|
||||
<div class="col-md-6">
|
||||
<h2>Latest Blog Posts</h2>
|
||||
<div class="row">
|
||||
{% for post in blog_posts %}
|
||||
<div class="col-12 mb-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ post.title }}</h5>
|
||||
<p class="card-text">{{ post.summary|truncatewords:20 }}</p>
|
||||
<a href="{% url 'blog:post_detail' post.id %}" class="btn btn-primary">Read More</a>
|
||||
<!-- Blog Posts Section -->
|
||||
<div class="col-md-6">
|
||||
<h2>Latest Blog Posts</h2>
|
||||
<div class="row">
|
||||
{% for post in blog_posts %}
|
||||
<div class="col-12 mb-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ post.title }}</h5>
|
||||
<p class="card-text">{{ post.contents|truncatechars:50 }}</p>
|
||||
<a href="{% url 'blog:post_detail' post.id %}" class="btn btn-primary">Read More</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No blog posts available.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>No blog posts available.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -1,19 +0,0 @@
|
||||
{% extends "components/base.html" %}
|
||||
|
||||
{% block title %}Notice Detail{% endblock %}
|
||||
|
||||
{% block main_area %}
|
||||
<h2 class="fw-bold pt-3 pb-2">{{ notice.title }}</h2>
|
||||
<hr>
|
||||
<div>
|
||||
{{ notice.contents|linebreaks }}
|
||||
</div>
|
||||
<hr>
|
||||
<p class="text-muted">작성자:
|
||||
{{ notice.author }}</p>
|
||||
<p class="text-muted">작성일:
|
||||
{{ notice.created_at|date:"Y-m-d H:i" }}</p>
|
||||
<p class="text-muted">수정일:
|
||||
{{ notice.updated_at|date:"Y-m-d H:i" }}</p>
|
||||
<a href="{% url 'butler:notice_list' %}" class="btn btn-secondary mt-3">Back to Notices</a>
|
||||
{% endblock %}
|
@ -1,44 +0,0 @@
|
||||
{% extends "components/base.html" %}
|
||||
|
||||
{% block title %}Notice{% endblock %}
|
||||
|
||||
{% block main_area %}
|
||||
<h2 class="fw-bold pt-3 pb-2 d-flex justify-content-between">
|
||||
공지사항
|
||||
|
||||
</h2>
|
||||
<!-- 공지사항 목록 -->
|
||||
|
||||
{% if records %}
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead class="table-dark">
|
||||
<tr>
|
||||
<th scope="col">글번호</th>
|
||||
<th scope="col">제목</th>
|
||||
<th scope="col">작성자</th>
|
||||
<th scope="col">작성일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for record in records %}
|
||||
<tr>
|
||||
<td>{{ record.pk }}</td>
|
||||
<td>
|
||||
<a href="{{ record.get_absolute_url }}">{{ record.title }}</a>
|
||||
</td>
|
||||
<td>{{ record.author }}</td>
|
||||
<td>{{ record.created_at|date:"Y-m-d H:i" }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p class="text-muted">현재 공지사항이 없습니다.</p>
|
||||
{% endif %}
|
||||
{% if request.user.is_authenticated %}
|
||||
<!-- 버튼 컨테이너 -->
|
||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||
<a href="{% url 'butler:create_notice' %}" class="btn btn-primary">Create Notice</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
Reference in New Issue
Block a user