관리자 페이지 추가 및 버그 수정

- 관리자 대시보드 추가 (/admin/)
  - 통계: 총 포스트, 공개/비공개, 삭제된 포스트, 회원 수
- 포스트 관리 추가 (/admin/posts)
  - 목록, 검색, 필터링, 페이지네이션
  - 포스트 수정, 삭제, 복구 기능
- 회원 관리 추가 (/admin/members)
  - 회원 목록, 추가, 수정, 삭제
  - 비밀번호 재설정
- 버그 수정
  - g.is_login, g.user_info 기본값 설정
  - index 페이지 빈 포스트 처리
- 관리자 권한: admin, wixon, javamon
- README.md 프로젝트 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
javamon117
2026-01-05 15:30:49 +09:00
parent 73a13852bf
commit d49a33cc6c
10 changed files with 1407 additions and 4 deletions

View File

@@ -0,0 +1,70 @@
{% extends 'admin/base_admin.html' %}
{% block content %}
<h1>대시보드</h1>
<!-- Stats Cards -->
<div class="uk-grid uk-child-width-1-2@s uk-child-width-1-4@m uk-grid-match" uk-grid>
<div>
<div class="stat__card">
<h3>총 포스트</h3>
<p class="stat__number">{{ stats.total_posts }}</p>
</div>
</div>
<div>
<div class="stat__card">
<h3>공개 포스트</h3>
<p class="stat__number green">{{ stats.public_posts }}</p>
</div>
</div>
<div>
<div class="stat__card">
<h3>비공개 포스트</h3>
<p class="stat__number orange">{{ stats.private_posts }}</p>
</div>
</div>
<div>
<div class="stat__card">
<h3>총 회원 수</h3>
<p class="stat__number blue">{{ stats.total_members }}</p>
</div>
</div>
</div>
<!-- Deleted Posts Alert -->
{% if stats.deleted_posts > 0 %}
<div class="uk-alert-warning uk-margin-top" uk-alert>
<a class="uk-alert-close" uk-close></a>
<p>
<span uk-icon="icon: warning"></span>
삭제된 포스트 <strong>{{ stats.deleted_posts }}개</strong>가 있습니다.
<a href="/admin/posts?use_yn=N">삭제된 포스트 보기</a>
</p>
</div>
{% endif %}
<!-- Quick Links -->
<div class="uk-margin-large-top">
<h2 class="uk-heading-line"><span>바로가기</span></h2>
<div class="uk-grid uk-child-width-1-3@m" uk-grid>
<div>
<a href="/admin/posts" class="uk-card uk-card-default uk-card-body uk-card-hover uk-text-center" style="display: block; text-decoration: none;">
<span uk-icon="icon: file-text; ratio: 2"></span>
<p class="uk-margin-small-top uk-text-bold">포스트 관리</p>
</a>
</div>
<div>
<a href="/admin/members" class="uk-card uk-card-default uk-card-body uk-card-hover uk-text-center" style="display: block; text-decoration: none;">
<span uk-icon="icon: users; ratio: 2"></span>
<p class="uk-margin-small-top uk-text-bold">회원 관리</p>
</a>
</div>
<div>
<a href="/write" class="uk-card uk-card-default uk-card-body uk-card-hover uk-text-center" style="display: block; text-decoration: none;">
<span uk-icon="icon: plus-circle; ratio: 2"></span>
<p class="uk-margin-small-top uk-text-bold">새 포스트 작성</p>
</a>
</div>
</div>
</div>
{% endblock %}