revert(cafe24): 일괄수정 기능 제거
사용자 결정에 따라 화면·라우트·로직·문서를 모두 제거했다. 제거 대상: routes_bulk.py (파일 삭제) templates/cafe24/bulk.html (파일 삭제) _nav.html 「일괄수정」 탭 router.py import·include·설명 store.py find_style_blocks / replace_first_style_block / 정규식 tests <style> 블록 교체 테스트 6건 docs 2-3 절, 경로 표 3줄, 구조도, Phase 7 표기 DB 는 손대지 않았다. 일괄수정은 전용 스키마를 만들지 않았고, 기존 테이블에 남은 기록은 **실제로 상품에 적용된 변경의 이력**이다. 특히 그때 만들어진 BACKUP revision 은 일괄 적용 이전 내용을 되찾을 유일한 수단이라 지우면 복구가 불가능해진다. 감사로그(action='bulk_style')도 누가 언제 무엇을 바꿨는지 남기는 기록이라 보존한다. 정말 지워야 한다면 별도로 요청받아 진행한다. 부수 수정: 예약 시각 검증 테스트가 실행 시각의 초에 따라 실패할 수 있었다. `datetime-local` 은 초를 버리므로 지금 이 분(分)을 고르면 최대 59초 과거가 되는데, 테스트가 now 의 초를 고정하지 않아 경계에서 흔들렸다. now 를 고정해 결정적으로 만들었다 (3회 반복 실행으로 확인). 검증: 유닛테스트 59개 통과, 라우트 13개, 템플릿 컴파일 확인, 모듈에 bulk 참조 0건. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -377,34 +377,6 @@ def _collapse_short_blocks(lines: list[str]) -> list[str]:
|
||||
return out
|
||||
|
||||
|
||||
# ════════════════════════════════════════════════════════════
|
||||
# <style> 블록 일괄 교체
|
||||
#
|
||||
# 상세페이지 맨 위의 <style> 을 정해진 내용으로 통일할 때 쓴다.
|
||||
# **맨 앞 블록 하나만** 건드린다. 아래쪽에 다른 <style> 이 더 있으면 그건 그대로
|
||||
# 두고, 화면에서 "블록 2개" 로 알려 사람이 판단하게 한다 — 일괄 작업이 남의 CSS 를
|
||||
# 조용히 지우는 것이 가장 위험하다.
|
||||
# ════════════════════════════════════════════════════════════
|
||||
_STYLE_BLOCK_RE = re.compile(r"<style\b[^>]*>.*?</style>", re.IGNORECASE | re.DOTALL)
|
||||
|
||||
|
||||
def find_style_blocks(html: str) -> list[str]:
|
||||
"""상세설명 안의 <style>…</style> 블록 전체(원문 그대로)."""
|
||||
return _STYLE_BLOCK_RE.findall(html or "")
|
||||
|
||||
|
||||
def replace_first_style_block(html: str, new_block: str) -> str:
|
||||
"""맨 앞 <style> 블록을 new_block 으로 교체한다.
|
||||
|
||||
블록이 하나도 없으면 맨 앞에 넣는다. 두 번째 이후 블록은 건드리지 않는다.
|
||||
"""
|
||||
source = html or ""
|
||||
match = _STYLE_BLOCK_RE.search(source)
|
||||
if match is None:
|
||||
return new_block + ("\n" + source.lstrip("\n") if source.strip() else "")
|
||||
return source[: match.start()] + new_block + source[match.end() :]
|
||||
|
||||
|
||||
# ════════════════════════════════════════════════════════════
|
||||
# 예약 입력 검증
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user