Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.utils.text import slugify
- from django.urls import reverse
- from django.contrib.auth import get_user_model
- User = get_user_model()
- from offers.models import Offer
- from locations.models import Location, SubLocation
- class Course(models.Model):
- user = models.ForeignKey(User, on_delete=models.PROTECT)
- offer = models.ForeignKey(Offer, on_delete=models.PROTECT)
- location = models.ForeignKey(Location, on_delete=models.PROTECT)
- sublocation = models.ForeignKey(SubLocation, on_delete=models.PROTECT)
- created_at = models.DateTimeField(auto_now_add=True)
- updated_at = models.DateTimeField(auto_now=True)
- start_at = models.DateTimeField(null=True, blank=True)
- max_attendees = models.IntegerField(blank=False)
- price = models.DecimalField(max_digits=6, decimal_places=2)
- def __str__(self):
- return self.offer.name
- def get_absolute_url(self):
- return reverse('courses:show', kwargs={'id': self.id})
- class Meta():
- ordering = ['start_at']
- class CourseUnit(models.Model):
- course = models.ForeignKey(Course, models.CASCADE, null=True, blank=True)
- start_at = models.DateTimeField(null=True, blank=False)
- end_at = models.DateTimeField(null=True, blank=False)
- def save(self, *args, **kwargs):
- if (self.course.start_at == None) or (self.start_at < self.course.start_at):
- self.course.start_at = self.start_at
- self.course.save()
- super().save(*args, **kwargs)
- class Meta():
- ordering = ['start_at']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement