From 64ae8a29cca8622781365422db97ca1411c41dad Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Mon, 7 May 2018 23:29:28 +0200 Subject: [PATCH] Allowing to configure default_lifetime. --- paste/forms.py | 5 +++-- paste/models.py | 11 ++++++----- paste/views.py | 3 ++- webtools/settings.py | 1 + 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/paste/forms.py b/paste/forms.py index 06713a3..4b72e6a 100644 --- a/paste/forms.py +++ b/paste/forms.py @@ -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) diff --git a/paste/models.py b/paste/models.py index 7894107..ef3e5d2 100644 --- a/paste/models.py +++ b/paste/models.py @@ -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) diff --git a/paste/views.py b/paste/views.py index 5cae32a..fb727b9 100644 --- a/paste/views.py +++ b/paste/views.py @@ -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) diff --git a/webtools/settings.py b/webtools/settings.py index 292e3a4..2eed9bc 100644 --- a/webtools/settings.py +++ b/webtools/settings.py @@ -96,6 +96,7 @@ PASTE = { 'enabled_renderers': ['pygments', 'raw'], 'default_renderer': 'pygments', 'max_characters': 100000, + 'default_lifetime': 60 * 24 * 7 * 365, } LOGGING = {