mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 14:13:21 +00:00
Format subscription
This commit is contained in:
parent
cd46e099b6
commit
113c9e696b
@ -26,6 +26,4 @@ from django.contrib import admin
|
|||||||
|
|
||||||
from subscription.models import Subscription
|
from subscription.models import Subscription
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Subscription)
|
admin.site.register(Subscription)
|
||||||
|
@ -35,15 +35,16 @@ from core.models import User
|
|||||||
from core.utils import get_start_of_semester
|
from core.utils import get_start_of_semester
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def validate_type(value):
|
def validate_type(value):
|
||||||
if value not in settings.SITH_SUBSCRIPTIONS.keys():
|
if value not in settings.SITH_SUBSCRIPTIONS.keys():
|
||||||
raise ValidationError(_('Bad subscription type'))
|
raise ValidationError(_('Bad subscription type'))
|
||||||
|
|
||||||
|
|
||||||
def validate_payment(value):
|
def validate_payment(value):
|
||||||
if value not in settings.SITH_SUBSCRIPTION_PAYMENT_METHOD:
|
if value not in settings.SITH_SUBSCRIPTION_PAYMENT_METHOD:
|
||||||
raise ValidationError(_('Bad payment method'))
|
raise ValidationError(_('Bad payment method'))
|
||||||
|
|
||||||
|
|
||||||
class Subscription(models.Model):
|
class Subscription(models.Model):
|
||||||
member = models.ForeignKey(User, related_name='subscriptions')
|
member = models.ForeignKey(User, related_name='subscriptions')
|
||||||
subscription_type = models.CharField(_('subscription type'),
|
subscription_type = models.CharField(_('subscription type'),
|
||||||
@ -134,7 +135,6 @@ class Subscription(models.Model):
|
|||||||
else:
|
else:
|
||||||
return 'No user - ' + str(self.pk)
|
return 'No user - ' + str(self.pk)
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def compute_start(d=date.today(), duration=1):
|
def compute_start(d=date.today(), duration=1):
|
||||||
"""
|
"""
|
||||||
@ -171,17 +171,21 @@ class Subscription(models.Model):
|
|||||||
return start.replace(day=1, month=(start.month + 6 * duration) % 12 + 1,
|
return start.replace(day=1, month=(start.month + 6 * duration) % 12 + 1,
|
||||||
year=start.year + int(duration / 2) + (1 if start.month > 6 and duration % 2 == 1 else 0))
|
year=start.year + int(duration / 2) + (1 if start.month > 6 and duration % 2 == 1 else 0))
|
||||||
|
|
||||||
|
|
||||||
def can_be_edited_by(self, user):
|
def can_be_edited_by(self, user):
|
||||||
return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root
|
return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or user.is_root
|
||||||
|
|
||||||
def is_valid_now(self):
|
def is_valid_now(self):
|
||||||
return self.subscription_start <= date.today() and date.today() <= self.subscription_end
|
return self.subscription_start <= date.today() and date.today() <= self.subscription_end
|
||||||
|
|
||||||
|
|
||||||
def guy_test(date, duration=4):
|
def guy_test(date, duration=4):
|
||||||
print(str(date) + " - " + str(duration) + " -> " + str(Subscription.compute_start(date, duration)))
|
print(str(date) + " - " + str(duration) + " -> " + str(Subscription.compute_start(date, duration)))
|
||||||
|
|
||||||
|
|
||||||
def bibou_test(duration, date=date.today()):
|
def bibou_test(duration, date=date.today()):
|
||||||
print(str(date) + " - " + str(duration) + " -> " + str(Subscription.compute_end(duration, Subscription.compute_start(date, duration))))
|
print(str(date) + " - " + str(duration) + " -> " + str(Subscription.compute_end(duration, Subscription.compute_start(date, duration))))
|
||||||
|
|
||||||
|
|
||||||
def guy():
|
def guy():
|
||||||
guy_test(date(2015, 7, 11))
|
guy_test(date(2015, 7, 11))
|
||||||
guy_test(date(2015, 8, 11))
|
guy_test(date(2015, 8, 11))
|
||||||
@ -219,5 +223,6 @@ def guy():
|
|||||||
bibou_test(3)
|
bibou_test(3)
|
||||||
bibou_test(4)
|
bibou_test(4)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
guy()
|
guy()
|
||||||
|
@ -31,6 +31,3 @@ urlpatterns = [
|
|||||||
url(r'^$', NewSubscription.as_view(), name='subscription'),
|
url(r'^$', NewSubscription.as_view(), name='subscription'),
|
||||||
url(r'stats', SubscriptionsStatsView.as_view(), name='stats'),
|
url(r'stats', SubscriptionsStatsView.as_view(), name='stats'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,16 +26,13 @@ from django.views.generic.edit import CreateView, FormView
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.core.exceptions import PermissionDenied, ValidationError
|
from django.core.exceptions import PermissionDenied, ValidationError
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
from django.db import IntegrityError
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.forms import Select
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from ajax_select.fields import AutoCompleteSelectField
|
from ajax_select.fields import AutoCompleteSelectField
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from subscription.models import Subscription
|
from subscription.models import Subscription
|
||||||
from core.views import CanEditMixin, CanEditPropMixin, CanViewMixin
|
|
||||||
from core.views.forms import SelectDateTime
|
from core.views.forms import SelectDateTime
|
||||||
from core.models import User
|
from core.models import User
|
||||||
|
|
||||||
@ -102,6 +99,7 @@ class SubscriptionForm(forms.ModelForm):
|
|||||||
raise ValidationError(_("You must either choose an existing user or create a new one properly"))
|
raise ValidationError(_("You must either choose an existing user or create a new one properly"))
|
||||||
return cleaned_data
|
return cleaned_data
|
||||||
|
|
||||||
|
|
||||||
class NewSubscription(CreateView):
|
class NewSubscription(CreateView):
|
||||||
template_name = 'subscription/subscription.jinja'
|
template_name = 'subscription/subscription.jinja'
|
||||||
form_class = SubscriptionForm
|
form_class = SubscriptionForm
|
||||||
|
Loading…
Reference in New Issue
Block a user