move to new domain
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-03-31 19:33:16 +03:00
parent 959f0aa9d7
commit ce3fdfffa1
6 changed files with 96 additions and 4 deletions

View File

@@ -0,0 +1,24 @@
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('backlogger', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='item',
name='user',
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name='items',
to=settings.AUTH_USER_MODEL,
),
),
]

View File

@@ -0,0 +1,20 @@
from django.db import migrations
def assign_to_first_user(apps, schema_editor):
Item = apps.get_model('backlogger', 'Item')
User = apps.get_model('auth', 'User')
first_user = User.objects.order_by('id').first()
if first_user:
Item.objects.filter(user__isnull=True).update(user=first_user)
class Migration(migrations.Migration):
dependencies = [
('backlogger', '0002_add_user_to_item'),
]
operations = [
migrations.RunPython(assign_to_first_user, migrations.RunPython.noop),
]

View File

@@ -1,3 +1,4 @@
from django.contrib.auth.models import User
from django.db import models from django.db import models
@@ -13,6 +14,8 @@ class Item(models.Model):
(OTHER, 'Other'), (OTHER, 'Other'),
] ]
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='items', null=True)
category = models.CharField(max_length=10, choices=CATEGORY_CHOICES) category = models.CharField(max_length=10, choices=CATEGORY_CHOICES)
name = models.CharField(max_length=200) name = models.CharField(max_length=200)
progress_percent = models.FloatField(default=0.0) progress_percent = models.FloatField(default=0.0)

View File

@@ -19,7 +19,7 @@ def item_list(request):
category = request.GET.get('category', '') category = request.GET.get('category', '')
sort = request.GET.get('sort', 'fav') sort = request.GET.get('sort', 'fav')
items = Item.objects.all() items = Item.objects.filter(user=request.user)
if category: if category:
items = items.filter(category=category) items = items.filter(category=category)
items = items.order_by(*SORT_MAP.get(sort, SORT_MAP['fav'])) items = items.order_by(*SORT_MAP.get(sort, SORT_MAP['fav']))
@@ -37,7 +37,9 @@ def item_add(request):
if request.method == 'POST': if request.method == 'POST':
form = ItemForm(request.POST) form = ItemForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save() item = form.save(commit=False)
item.user = request.user
item.save()
return redirect('backlogger:list') return redirect('backlogger:list')
else: else:
form = ItemForm() form = ItemForm()
@@ -46,7 +48,7 @@ def item_add(request):
@login_required @login_required
def item_edit(request, pk): def item_edit(request, pk):
item = get_object_or_404(Item, pk=pk) item = get_object_or_404(Item, pk=pk, user=request.user)
if request.method == 'POST': if request.method == 'POST':
form = ItemForm(request.POST, instance=item) form = ItemForm(request.POST, instance=item)
if form.is_valid(): if form.is_valid():
@@ -60,5 +62,5 @@ def item_edit(request, pk):
@login_required @login_required
def item_delete(request, pk): def item_delete(request, pk):
if request.method == 'POST': if request.method == 'POST':
get_object_or_404(Item, pk=pk).delete() get_object_or_404(Item, pk=pk, user=request.user).delete()
return redirect('backlogger:list') return redirect('backlogger:list')

View File

@@ -10,6 +10,8 @@ ALLOWED_HOSTS = [
'k-boris.tech', 'k-boris.tech',
'www.k-boris.tech', 'www.k-boris.tech',
'admin.k-boris.tech', 'admin.k-boris.tech',
'killmybacklog.com',
'www.killmybacklog.com',
'localhost', 'localhost',
'127.0.0.1', '127.0.0.1',
] ]
@@ -18,6 +20,8 @@ CSRF_TRUSTED_ORIGINS = [
'https://k-boris.tech', 'https://k-boris.tech',
'https://www.k-boris.tech', 'https://www.k-boris.tech',
'https://admin.k-boris.tech', 'https://admin.k-boris.tech',
'https://killmybacklog.com',
'https://www.killmybacklog.com',
] ]
INSTALLED_APPS = [ INSTALLED_APPS = [

View File

@@ -0,0 +1,39 @@
server {
server_name killmybacklog.com www.killmybacklog.com;
client_max_body_size 10m;
location = / {
return 301 /backlogger/;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/killmybacklog.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/killmybacklog.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.killmybacklog.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = killmybacklog.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name killmybacklog.com www.killmybacklog.com;
return 404; # managed by Certbot
}