70 lines
2.2 KiB
Python
70 lines
2.2 KiB
Python
import os
|
|
|
|
from django.conf import settings
|
|
from django.db import models
|
|
|
|
from ietf.meeting.models import Meeting
|
|
|
|
|
|
class InterimManager(models.Manager):
|
|
'''A custom manager to limit objects to type=interim'''
|
|
def get_queryset(self):
|
|
return super(InterimManager, self).get_queryset().filter(type='interim')
|
|
|
|
class InterimMeeting(Meeting):
|
|
'''
|
|
This class is a proxy of Meeting. It's purpose is to provide extra methods that are
|
|
useful for an interim meeting, to help in templates. Most information is derived from
|
|
the session associated with this meeting. We are assuming there is only one.
|
|
'''
|
|
class Meta:
|
|
proxy = True
|
|
|
|
objects = InterimManager()
|
|
|
|
def group(self):
|
|
return self.session_set.all()[0].group
|
|
|
|
def agenda(self): # pylint: disable=method-hidden
|
|
session = self.session_set.all()[0]
|
|
agendas = session.materials.exclude(states__slug='deleted').filter(type='agenda')
|
|
if agendas:
|
|
return agendas[0]
|
|
else:
|
|
return None
|
|
|
|
def minutes(self):
|
|
session = self.session_set.all()[0]
|
|
minutes = session.materials.exclude(states__slug='deleted').filter(type='minutes')
|
|
if minutes:
|
|
return minutes[0]
|
|
else:
|
|
return None
|
|
|
|
def get_proceedings_path(self, group=None):
|
|
return os.path.join(self.get_materials_path(),'proceedings.html')
|
|
|
|
def get_proceedings_url(self, group=None):
|
|
'''
|
|
If the proceedings file doesn't exist return empty string. For use in templates.
|
|
'''
|
|
if os.path.exists(self.get_proceedings_path()):
|
|
url = "%sproceedings/%s/proceedings.html" % (
|
|
settings.IETF_HOST_URL,
|
|
self.number)
|
|
return url
|
|
else:
|
|
return ''
|
|
|
|
class Registration(models.Model):
|
|
rsn = models.AutoField(primary_key=True)
|
|
fname = models.CharField(max_length=255)
|
|
lname = models.CharField(max_length=255)
|
|
company = models.CharField(max_length=255)
|
|
country = models.CharField(max_length=2)
|
|
|
|
def __unicode__(self):
|
|
return "%s %s" % (self.fname, self.lname)
|
|
class Meta:
|
|
db_table = 'registrations'
|