Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.57 KB | None | 0 0
  1. from django.db import models
  2. from django.utils.text import slugify
  3. from django.urls import reverse
  4.  
  5. from django.contrib.auth import get_user_model
  6. User = get_user_model()
  7.  
  8. from offers.models import Offer
  9. from locations.models import Location, SubLocation
  10.  
  11. class Course(models.Model):
  12.     user = models.ForeignKey(User, on_delete=models.PROTECT)
  13.     offer = models.ForeignKey(Offer, on_delete=models.PROTECT)
  14.     location = models.ForeignKey(Location, on_delete=models.PROTECT)
  15.     sublocation = models.ForeignKey(SubLocation, on_delete=models.PROTECT)
  16.     created_at = models.DateTimeField(auto_now_add=True)
  17.     updated_at = models.DateTimeField(auto_now=True)
  18.     start_at = models.DateTimeField(null=True, blank=True)
  19.     max_attendees = models.IntegerField(blank=False)
  20.     price = models.DecimalField(max_digits=6, decimal_places=2)
  21.  
  22.     def __str__(self):
  23.         return self.offer.name
  24.  
  25.     def get_absolute_url(self):
  26.         return reverse('courses:show', kwargs={'id': self.id})
  27.  
  28.     class Meta():
  29.         ordering = ['start_at']
  30.  
  31.  
  32. class CourseUnit(models.Model):
  33.     course = models.ForeignKey(Course, models.CASCADE, null=True, blank=True)
  34.     start_at = models.DateTimeField(null=True, blank=False)
  35.     end_at = models.DateTimeField(null=True, blank=False)
  36.  
  37.     def save(self, *args, **kwargs):
  38.         if (self.course.start_at == None) or (self.start_at < self.course.start_at):
  39.             self.course.start_at = self.start_at
  40.             self.course.save()
  41.         super().save(*args, **kwargs)
  42.  
  43.     class Meta():
  44.         ordering = ['start_at']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement