Allowing to configure default_lifetime.

This commit is contained in:
Julien Palard 2018-05-07 23:29:28 +02:00
parent df539936bd
commit 64ae8a29cc
4 changed files with 12 additions and 8 deletions

View File

@ -1,5 +1,7 @@
from webtools import settings
from django import forms
from django.forms import ModelForm
from .models import Paste, Language
from .models import Paste, Language, EXPIRE_CHOICES
class PasteForm(ModelForm):
@ -9,7 +11,6 @@ class PasteForm(ModelForm):
fields = ['language', 'title', 'password', 'content', 'lifetime',
'lifecount', 'private']
def save(self, commit=True):
"""Overwrites save method."""
paste = super(PasteForm, self).save(commit=False)

View File

@ -10,11 +10,11 @@ import uuid
EXPIRE_CHOICES = (
(0, _('Never expire')),
(5, _('5 minutes')),
(30, _('30 minutes')),
(60, _('1 hour')),
(1440, _('1 day')),
(10080, _('1 week')),
(60 * 24, _('1 day')),
(60 * 24 * 7, _('1 week')),
(60 * 24 * 7 * 30, _('1 month')),
(60 * 24 * 7 * 365, _('1 year')),
)
@ -42,7 +42,8 @@ class Paste(models.Model):
paste_time = models.DateTimeField(default=datetime.now, editable=False)
paste_ip = models.GenericIPAddressField(editable=False)
paste_agent = models.CharField(max_length=200, editable=False)
lifetime = models.IntegerField(default=0, choices=EXPIRE_CHOICES)
lifetime = models.IntegerField(default=settings.PASTE['default_lifetime'],
choices=EXPIRE_CHOICES)
lifecount = models.IntegerField(default=0, blank=True)
viewcount = models.IntegerField(default=0, editable=False)
expired = models.BooleanField(default=False, editable=False)

View File

@ -22,7 +22,8 @@ def index(request):
form.save() # Some logic added to overrided method, see forms.py
return redirect(reverse('paste', kwargs={'slug': paste.slug}))
data['form'] = PasteForm(initial={
'private': settings.PASTE['private_by_default']})
'private': settings.PASTE['private_by_default'],
'lifetime': settings.PASTE['default_lifetime']})
return render(request, 'paste/index.html', data)

View File

@ -96,6 +96,7 @@ PASTE = {
'enabled_renderers': ['pygments', 'raw'],
'default_renderer': 'pygments',
'max_characters': 100000,
'default_lifetime': 60 * 24 * 7 * 365,
}
LOGGING = {