mirror of
https://github.com/EDeev/deev.space.git
synced 2026-10-07 20:49:59 +03:00
Перенесено всё, что накопилось на сервере с декабря 2025: - анонимный посетитель по подписанной cookie (main/middleware.py), лайки и дизлайки без регистрации с антинакруткой, уникальные просмотры статей; - карточка-паспорт, стек в одну строку, блок «В цифрах»; - миграции 0005–0008, команды load_initial_data и populate_demo, robots.txt; - обновлённые шаблоны, стили и скрипты. Безопасность и порядок: - все секреты только из окружения, значения по умолчанию пустые; - DEBUG по умолчанию выключен, без DJANGO_SECRET_KEY запуск в бою невозможен; - ALLOWED_HOSTS, путь к базе и SSL-редирект настраиваются переменными; - убрана статика админки Django (результат collectstatic) и media из git; - добавлены .gitignore и .gitattributes (переводы строк — LF).
39 lines
No EOL
868 B
Python
39 lines
No EOL
868 B
Python
from django.contrib.sitemaps import Sitemap
|
|
from django.urls import reverse
|
|
from .models import Article, Project
|
|
|
|
|
|
class ArticleSitemap(Sitemap):
|
|
changefreq = 'weekly'
|
|
priority = 0.8
|
|
|
|
def items(self):
|
|
return Article.objects.filter(is_published=True)
|
|
|
|
def lastmod(self, obj):
|
|
return obj.updated_at
|
|
|
|
def location(self, obj):
|
|
return obj.get_absolute_url()
|
|
|
|
|
|
class ProjectSitemap(Sitemap):
|
|
changefreq = 'monthly'
|
|
priority = 0.7
|
|
|
|
def items(self):
|
|
return Project.objects.filter(is_visible=True)
|
|
|
|
def location(self, obj):
|
|
return f'/projects/#{obj.slug}'
|
|
|
|
|
|
class StaticViewSitemap(Sitemap):
|
|
priority = 0.5
|
|
changefreq = 'monthly'
|
|
|
|
def items(self):
|
|
return ['index', 'about', 'projects', 'blog', 'achievements', 'contacts']
|
|
|
|
def location(self, item):
|
|
return reverse(item) |