set title from file; set shortterm to slug
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
|
||||
from django.core.validators import ValidationError
|
||||
from django.db import models
|
||||
from django.db.models.constraints import UniqueConstraint
|
||||
@@ -42,7 +43,6 @@ class TopicGroup(models.Model):
|
||||
return reverse("intern:index") + "#" + self.slug
|
||||
|
||||
def clean(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.shortterm)
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ class Topic(models.Model):
|
||||
return reverse("intern:topic", kwargs={"slug": self.slug})
|
||||
|
||||
def clean(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.shortterm)
|
||||
|
||||
|
||||
@@ -115,7 +114,6 @@ class Attachment(models.Model):
|
||||
return reverse("intern:attachment", kwargs=kwargs)
|
||||
|
||||
def clean(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.shortterm)
|
||||
|
||||
|
||||
@@ -158,11 +156,10 @@ class Etherpad(models.Model):
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.title)
|
||||
|
||||
if not self.etherpad_key:
|
||||
pad_name = self.__get_pad_name()
|
||||
|
||||
if len(pad_name) > 50:
|
||||
raise ValidationError(
|
||||
_(
|
||||
@@ -186,7 +183,7 @@ class Etherpad(models.Model):
|
||||
|
||||
|
||||
class FileUpload(models.Model):
|
||||
title = models.CharField(verbose_name="Titel", max_length=128)
|
||||
title = models.CharField(verbose_name="Titel", max_length=128, blank=True)
|
||||
file_field = models.FileField(
|
||||
verbose_name="Dokument", upload_to="uploads/intern/files/"
|
||||
)
|
||||
@@ -202,3 +199,7 @@ class FileUpload(models.Model):
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
def clean(self):
|
||||
if not self.title:
|
||||
self.title = Path(self.file_field.name).stem
|
||||
|
||||
@@ -178,7 +178,12 @@ class TopicUpdateView(LoginRequiredMixin, UpdateView):
|
||||
slug = None
|
||||
|
||||
def form_valid(self, form):
|
||||
form.instance.created_by = self.request.user
|
||||
add_log_action(self.request, form, "intern", "topic", False)
|
||||
|
||||
# get new slug
|
||||
obj = form.save(commit=False)
|
||||
self.slug = obj.slug
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
@@ -238,13 +243,17 @@ class AttachmentUpdateView(LoginRequiredMixin, UpdateView):
|
||||
slug = None
|
||||
|
||||
def form_valid(self, form):
|
||||
add_log_action(self.request, form, "tasks", "attachment", False)
|
||||
form.instance.created_by = self.request.user
|
||||
add_log_action(self.request, form, "intern", "attachment", False)
|
||||
|
||||
# get new slug
|
||||
obj = form.save(commit=False)
|
||||
self.slug = obj.slug
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["topic_slug"] = self.topic_slug
|
||||
context["slug"] = self.slug
|
||||
context["topic"] = Topic.objects.get(slug=self.topic_slug)
|
||||
|
||||
attachment = Attachment.objects.get(
|
||||
Q(slug=self.slug) & Q(topic__slug=self.topic_slug)
|
||||
|
||||
@@ -18,6 +18,16 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<label>
|
||||
<span class="text-gray-700 dark:text-gray-200">{{ form.file_field.label }}</span>
|
||||
{% if form.file_field.errors %}
|
||||
<div class="alert alert-danger">
|
||||
<div class="alert-body">{{ form.file_field.errors }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<input type="file" id="id_file_field" name="file_field" class="text-gray-700 dark:text-gray-200 block w-full mt-1 rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50" required>
|
||||
</label>
|
||||
|
||||
<label class="block">
|
||||
<span class="text-gray-700 dark:text-gray-200">{{ form.title.label }}</span>
|
||||
{% if form.title.errors %}
|
||||
@@ -25,13 +35,9 @@
|
||||
<div class="alert-body">{{ form.title.errors }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<input type="text" id="id_title" name="title" class="mt-1 block w-full rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50" required>
|
||||
<input type="text" id="id_title" name="title" class="mt-1 block w-full rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50">
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<span class="text-gray-700 dark:text-gray-200">{{ form.file_field.label }}</span>
|
||||
<input type="file" id="id_file_field" name="file_field" class="text-gray-700 dark:text-gray-200 block w-full mt-1 rounded-md border-gray-300 dark:border-none shadow-sm focus:border-none focus:ring focus:ring-blue-200 dark:focus:ring-sky-700 focus:ring-opacity-50" required>
|
||||
</label>
|
||||
|
||||
<input type="hidden" name="attachment" value="{{ attachment.id }}" id="id_attachment">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user