# Path: course/models/course.py
# ARCHIVE_STATUSES = (
#     ('t', 'auto'),
#     ('n', 'never'),
#     ('a', 'archived'),
# )
# class Course(models.Model):
#     class IsFull(Exception):
#     class IsInactive(Exception):
#     class IsInvisible(Exception):
#     class IsNotEnrolled(Exception):
#     class IsEnrolled(Exception):
#     class IsArchived(Exception):
# class Notification(models.Model):
# class Participation(models.Model):
#     class Meta:
#     def __str__(self):
#     def enroll(self, student):
#     def unenroll(self, student):
#     def _is_participant(self, student):
#     def is_participant(self, student):
#     def saturated(self):
#     def joinable(self):
#     def saturation_level(self):
#     def enrolled_students(self):
#     def students_on_queue(self):
#     def get_description_as_html(self):
#     def get_distinct_locations(self):
#     def get_locations(self):
#     def get_queue(self):
#     def position_in_queue(self, student):
#     def as_context(self, student=None):
#     def can_be_archived(self):
#     def is_archived(self):
#     def has_description(self):
#     def is_teacher(self, student):
#     def can_modify(self, student):
#     def is_active(self):
#     def is_visible(self):
# 
# Path: course/models/schedule.py
# WEEKDAYS = [
#     ("MON", _("Mondays")),
#     ("TUE", _("Tuesdays")),
#     ("WED", _("Wednesdays")),
#     ("THU", _("Thursdays")),
#     ("FRI", _("Fridays")),
#     ("SAT", _("Saturdays")),
#     ("SUN", _("Sundays")),
# ]
# TIMESLOTS = [
#     ("I", _("1st")),
#     ("II", _("2nd")),
#     ("III", _("3rd")),
#     ("IV", _("4th")),
#     ("V", _("5th")),
#     ("VI", _("6th")),
#     ("VII", _("7th")),
# ]
#     TYPES = [
#         ('W', _("weekly")),
#         ('O', _('one time')),
#     ]
# class Schedule(models.Model):
# class WeeklySlot(models.Model):
# class DateSlot(models.Model):
#     def is_weekly(self):
#     def is_one_time(self):
#     def slots(self):
#     def get_type(self):
#     def set_type(self, type):
#     def __str__(self):
#     def __str__(self):
#     def as_summary(self):
#     def __str__(self):
#     def as_summary(self):
# 
# Path: course/models/subject.py
# class Subject(models.Model):
#     def __str__(self):
#     def render_description(self):
#     def get_active(cls):
#     def get_visible(cls):
#     def get_inactive(cls):
#     def get_invisible(cls):
#     def active_courses(self):
#     def visible_courses(self):
#     def is_active(self):
#     def is_visible(self):
# 
# Path: course/models/news.py
# class News(models.Model):
#     def __str__(self):
#     def render_entry(self):
#     def render_date(self):
# 
# Path: user/models.py
# class UserInformation(models.Model):
#     user = models.OneToOneField(User, on_delete=models.CASCADE)
#     description = models.TextField(default="")
#     public_profile = models.BooleanField(default=False)
#     accepted_privacy_policy = models.BooleanField(
#         validators=[privacy_policy_consented])
# 
#     def __str__(self):
#         return '{first} {last}'.format(first=self.user.first_name, last=self.user.last_name)
# 
#     def render_description(self):
#         return clean_for_user_description(markdown(self.description))
# 
#     @staticmethod
#     def create(
#             username,
#             email,
#             password,
#             first_name,
#             last_name,
#     ):
#         user = User.objects.create_user(
#             email=email,
#             username=username,
#             password=password,
#             first_name=first_name,
#             last_name=last_name
#         )
#         user.is_active = False
#         user.save()
# 
#         return UserInformation.objects.create(user=user, accepted_privacy_policy=True)
# 
# class Activation(models.Model):
#     user = models.ForeignKey(User, on_delete=models.CASCADE)
#     token = models.CharField(max_length=50)
#     type = models.CharField(max_length=1,
#                             choices=tuple((v, k)
#                                           for k, v in ACTIVATION_TYPES.items())
#                             )


from django.contrib import admin
from .models import course, schedule, subject, news
from user.models import UserInformation, Activation


admin.site.register(course.Course)
admin.site.register(course.Notification)
admin.site.register(course.Participation)
admin.site.register(schedule.Schedule)
admin.site.register(schedule.WeeklySlot)

# Path: course/models/course.py
# ARCHIVE_STATUSES = (
#     ('t', 'auto'),
#     ('n', 'never'),
#     ('a', 'archived'),
# )
# class Course(models.Model):
#     class IsFull(Exception):
#     class IsInactive(Exception):
#     class IsInvisible(Exception):
#     class IsNotEnrolled(Exception):
#     class IsEnrolled(Exception):
#     class IsArchived(Exception):
# class Notification(models.Model):
# class Participation(models.Model):
#     class Meta:
#     def __str__(self):
#     def enroll(self, student):
#     def unenroll(self, student):
#     def _is_participant(self, student):
#     def is_participant(self, student):
#     def saturated(self):
#     def joinable(self):
#     def saturation_level(self):
#     def enrolled_students(self):
#     def students_on_queue(self):
#     def get_description_as_html(self):
#     def get_distinct_locations(self):
#     def get_locations(self):
#     def get_queue(self):
#     def position_in_queue(self, student):
#     def as_context(self, student=None):
#     def can_be_archived(self):
#     def is_archived(self):
#     def has_description(self):
#     def is_teacher(self, student):
#     def can_modify(self, student):
#     def is_active(self):
#     def is_visible(self):
# 
# Path: course/models/schedule.py
# WEEKDAYS = [
#     ("MON", _("Mondays")),
#     ("TUE", _("Tuesdays")),
#     ("WED", _("Wednesdays")),
#     ("THU", _("Thursdays")),
#     ("FRI", _("Fridays")),
#     ("SAT", _("Saturdays")),
#     ("SUN", _("Sundays")),
# ]
# TIMESLOTS = [
#     ("I", _("1st")),
#     ("II", _("2nd")),
#     ("III", _("3rd")),
#     ("IV", _("4th")),
#     ("V", _("5th")),
#     ("VI", _("6th")),
#     ("VII", _("7th")),
# ]
#     TYPES = [
#         ('W', _("weekly")),
#         ('O', _('one time')),
#     ]
# class Schedule(models.Model):
# class WeeklySlot(models.Model):
# class DateSlot(models.Model):
#     def is_weekly(self):
#     def is_one_time(self):
#     def slots(self):
#     def get_type(self):
#     def set_type(self, type):
#     def __str__(self):
#     def __str__(self):
#     def as_summary(self):
#     def __str__(self):
#     def as_summary(self):
# 
# Path: course/models/subject.py
# class Subject(models.Model):
#     def __str__(self):
#     def render_description(self):
#     def get_active(cls):
#     def get_visible(cls):
#     def get_inactive(cls):
#     def get_invisible(cls):
#     def active_courses(self):
#     def visible_courses(self):
#     def is_active(self):
#     def is_visible(self):
# 
# Path: course/models/news.py
# class News(models.Model):
#     def __str__(self):
#     def render_entry(self):
#     def render_date(self):
# 
# Path: user/models.py
# class UserInformation(models.Model):
#     user = models.OneToOneField(User, on_delete=models.CASCADE)
#     description = models.TextField(default="")
#     public_profile = models.BooleanField(default=False)
#     accepted_privacy_policy = models.BooleanField(
#         validators=[privacy_policy_consented])
# 
#     def __str__(self):
#         return '{first} {last}'.format(first=self.user.first_name, last=self.user.last_name)
# 
#     def render_description(self):
#         return clean_for_user_description(markdown(self.description))
# 
#     @staticmethod
#     def create(
#             username,
#             email,
#             password,
#             first_name,
#             last_name,
#     ):
#         user = User.objects.create_user(
#             email=email,
#             username=username,
#             password=password,
#             first_name=first_name,
#             last_name=last_name
#         )
#         user.is_active = False
#         user.save()
# 
#         return UserInformation.objects.create(user=user, accepted_privacy_policy=True)
# 
# class Activation(models.Model):
#     user = models.ForeignKey(User, on_delete=models.CASCADE)
#     token = models.CharField(max_length=50)
#     type = models.CharField(max_length=1,
#                             choices=tuple((v, k)
#                                           for k, v in ACTIVATION_TYPES.items())
#                             )


# Path: course/admin.py
from django.contrib import admin
from .models import course, schedule, subject, news
from user.models import UserInformation, Activation



admin.site.register(course.Course)
admin.site.register(course.Notification)
admin.site.register(course.Participation)
admin.site.register(schedule.Schedule)
admin.site.register(schedule.WeeklySlot)

admin.site.register(schedule.DateSlot)