Meetings

This module is used to manage information related to LNL meetings.

Models

class meetings.models.AnnounceSend(*args, **kwargs)[source]

Log of when a meeting notice has been sent out

Parameters:
  • id (AutoField) – Id (required)
  • announce (ForeignKey to MeetingAnnounce) – Announce (required)
  • sent_at (DateTimeField) – Sent at (required)
  • sent_success (BooleanField) – Sent success (default=False)
exception DoesNotExist
exception MultipleObjectsReturned
announce

ForeignKey(on_delete=CASCADE(), to= MeetingAnnounce)

announce_id

Raw (integer) FK for announce

get_next_by_sent_at(*, field=<django.db.models.fields.DateTimeField: sent_at>, is_next=True, **kwargs)
get_previous_by_sent_at(*, field=<django.db.models.fields.DateTimeField: sent_at>, is_next=False, **kwargs)
id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

objects = <django.db.models.manager.Manager object>
sent_at

DateTimeField(auto_now_add=True)

sent_success

BooleanField(default=False)

class meetings.models.CCNoticeSend(*args, **kwargs)[source]

Contents of an email containing a meeting CC notice

Parameters:
  • id (AutoField) – Id (required)
  • meeting (ForeignKey to Meeting) – Meeting (required)
  • sent_at (DateTimeField) – Sent at (required)
  • sent_success (BooleanField) – Sent success (default=False)
  • uuid (UUIDField) – Uuid (default=<function uuid4 at 0x7f2af5e0c680>)
  • email_to (ForeignKey to TargetEmailList) – Email to (default=<function get_default_email at 0x7f2af3bd3320>)
  • addtl_message (TextField) – Additional message
  • events (ManyToManyField to BaseEvent) – Events (required)
exception DoesNotExist
exception MultipleObjectsReturned
addtl_message

TextField(verbose_name=”Additional Message”, blank=True, null=True)

email_to

ForeignKey(default=get_default_email(), on_delete=PROTECT(), to= TargetEmailList)

email_to_id

Raw (integer) FK for email_to

events

Reverse Manager for meetings.CCNoticeSend’s events

get_next_by_sent_at(*, field=<django.db.models.fields.DateTimeField: sent_at>, is_next=True, **kwargs)
get_previous_by_sent_at(*, field=<django.db.models.fields.DateTimeField: sent_at>, is_next=False, **kwargs)
id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

meeting

ForeignKey(related_name=”meetingccnotices”, on_delete=CASCADE(), to= Meeting)

meeting_id

Raw (integer) FK for meeting

objects = <django.db.models.manager.Manager object>
reverse_ordered_events
sent_at

DateTimeField(auto_now_add=True)

sent_success

BooleanField(default=False)

subject
uuid

UUIDField(blank=True, default=uuid4(), editable=False)

class meetings.models.Meeting(id, datetime, duration, meeting_type, location, agenda, minutes, minutes_private)[source]
Parameters:
  • id (AutoField) – Id (required)
  • datetime (DateTimeField) – Start time (required)
  • duration (DurationField) – Duration (default=1:00:00)
  • meeting_type (ForeignKey to MeetingType) – Meeting type (default=1)
  • location (ForeignKey to Location) – Location
  • agenda (TextField) – Agenda
  • minutes (TextField) – Minutes
  • minutes_private (TextField) – Closed minutes
  • attendance (ManyToManyField to User) – Attendance (required)
exception DoesNotExist
exception MultipleObjectsReturned
agenda

TextField(blank=True, null=True)

attachments

Reverse Manager for meetings.MtgAttachment’s meeting

attendance

Reverse Manager for meetings.Meeting’s attendance

cal_desc()[source]

No description will be provided for meetings displayed on calendars

cal_end()[source]

The meeting end time used by calendars

cal_guid()[source]

Unique event id used by calendars

Link to be displayed on calendars

cal_location()[source]

The location name used by calendars

cal_name()[source]

Title to display on calendars

cal_start()[source]

The meeting start time used by calendars

datetime

DateTimeField(verbose_name=”Start Time”)

duration

DurationField(default=1:00:00)

endtime
get_absolute_url()[source]
get_next_by_datetime(*, field=<django.db.models.fields.DateTimeField: datetime>, is_next=True, **kwargs)
get_previous_by_datetime(*, field=<django.db.models.fields.DateTimeField: datetime>, is_next=False, **kwargs)
glyphicon = 'briefcase'
id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

location

ForeignKey(blank=True, null=True, on_delete=PROTECT(), to= Location)

location_id

Raw (integer) FK for location

meeting_type

ForeignKey(default=1, on_delete=PROTECT(), to= MeetingType)

meeting_type_id

Raw (integer) FK for meeting_type

meetingannounce_set

Reverse Manager for meetings.MeetingAnnounce’s meeting

meetingccnotices

Reverse Manager for meetings.CCNoticeSend’s meeting

minutes

TextField(blank=True, null=True)

minutes_private

TextField(verbose_name=”Closed Minutes”, blank=True, null=True)

name
objects = <django.db.models.manager.Manager object>
class meetings.models.MeetingAnnounce(*args, **kwargs)[source]

Contents of an email containing a meeting notice

Parameters:
  • id (AutoField) – Id (required)
  • meeting (ForeignKey to Meeting) – Meeting (required)
  • subject (CharField) – Subject (required)
  • message (TextField) – Message (required)
  • email_to (ForeignKey to TargetEmailList) – Email to (required)
  • added (DateTimeField) – Added (required)
  • uuid (UUIDField) – Uuid (default=<function uuid4 at 0x7f2af5e0c680>)
  • events (ManyToManyField to BaseEvent) – Events (required)
exception DoesNotExist
exception MultipleObjectsReturned
added

DateTimeField(auto_now_add=True)

announcesend_set

Reverse Manager for meetings.AnnounceSend’s announce

email_to

ForeignKey(on_delete=PROTECT(), to= TargetEmailList)

email_to_id

Raw (integer) FK for email_to

events

Reverse Manager for meetings.MeetingAnnounce’s events

get_next_by_added(*, field=<django.db.models.fields.DateTimeField: added>, is_next=True, **kwargs)
get_previous_by_added(*, field=<django.db.models.fields.DateTimeField: added>, is_next=False, **kwargs)
id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

meeting

ForeignKey(on_delete=CASCADE(), to= Meeting)

meeting_id

Raw (integer) FK for meeting

message

TextField()

objects = <django.db.models.manager.Manager object>
reverse_ordered_events
subject

CharField(max_length=128)

uuid

UUIDField(blank=True, default=uuid4(), editable=False)

class meetings.models.MeetingType(*args, **kwargs)[source]

Used to specify the type of meeting (i.e. Exec Board, General Body, etc.)

Parameters:
  • id (AutoField) – Id (required)
  • name (CharField) – Name (required)
  • archived (BooleanField) – Archived (default=False)
exception DoesNotExist
exception MultipleObjectsReturned
archived

BooleanField(default=False)

id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

invite_subscriptions

Reverse Manager for accounts.UserPreferences’s meeting_invite_subscriptions

meeting_set

Reverse Manager for meetings.Meeting’s meeting_type

name

CharField(max_length=32)

objects = <django.db.models.manager.Manager object>
class meetings.models.MtgAttachment(id, created, modified, name, file, author, meeting, private)[source]
Parameters:
  • id (AutoField) – Id (required)
  • created (CreationDateTimeField) – Created (required)
  • modified (ModificationDateTimeField) – Modified (required)
  • name (CharField) – Name (required)
  • file (FileField) – File (required)
  • author (ForeignKey to User) – Author (required)
  • meeting (ForeignKey to Meeting) – Meeting
  • private (BooleanField) – Private (default=False)
exception DoesNotExist
exception MultipleObjectsReturned
author

ForeignKey(editable=False, on_delete=PROTECT(), to= User)

author_id

Raw (integer) FK for author

file

The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:

>>> from myapp.models import MyModel
>>> instance = MyModel.objects.get(pk=1)
>>> instance.file.size

Assign a file object on assignment so you can do:

>>> with open('/path/to/hello.world') as f:
...     instance.file = File(f)
get_next_by_created(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=True, **kwargs)
get_next_by_modified(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=True, **kwargs)
get_previous_by_created(*, field=<django_extensions.db.fields.CreationDateTimeField: created>, is_next=False, **kwargs)
get_previous_by_modified(*, field=<django_extensions.db.fields.ModificationDateTimeField: modified>, is_next=False, **kwargs)
glyphicon = 'paperclip'
id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

meeting

ForeignKey(null=True, related_name=”attachments”, on_delete=CASCADE(), to= Meeting)

meeting_id

Raw (integer) FK for meeting

name

CharField(max_length=64)

objects = <django.db.models.manager.Manager object>
private

BooleanField(default=False)

class meetings.models.TargetEmailList(*args, **kwargs)[source]

Represents a target email address (i.e. aliases)

Parameters:
  • id (AutoField) – Id (required)
  • name (CharField) – Name (required)
  • email (EmailField) – Email (required)
exception DoesNotExist
exception MultipleObjectsReturned
ccnoticesend_set

Reverse Manager for meetings.CCNoticeSend’s email_to

email

CharField(max_length=254)

id

AutoField(verbose_name=”ID”, primary_key=True, serialize=False, auto_created=True)

meetingannounce_set

Reverse Manager for meetings.MeetingAnnounce’s email_to

name

CharField(max_length=16)

objects = <django.db.models.manager.Manager object>
meetings.models.get_default_email()[source]
meetings.models.mtg_attachment_file_name(instance, filename)[source]

Views

class meetings.views.DeleteMeeting(**kwargs)[source]

Delete a meeting

delete(request, *args, **kwargs)[source]

Call the delete() method on the fetched object and then redirect to the success URL.

get_success_url()[source]
model

alias of meetings.models.Meeting

msg = 'Delete Meeting'
perms = 'meetings.edit_mtg'
pk_url_kwarg = 'mtg_id'
template_name = 'form_delete_cbv.html'
meetings.views.download_att(request, mtg_id, att_id)[source]

Download a meeting attachment

Parameters:
  • mtg_id – The primary key value of the meeting
  • att_id – The primary key value of the attachment
meetings.views.download_invite(request, mtg_id)[source]

Generate and download an ics file

meetings.views.editattendance(request, mtg_id)[source]

Update event details

meetings.views.listattendance(request, page=1)[source]

List all meetings

meetings.views.mkccnotice(request, mtg_id)[source]

Send a CC meeting notice

meetings.views.mknotice(request, mtg_id)[source]

Send a meeting notice

meetings.views.modify_att(request, mtg_id, att_id)[source]

Update an attachment

Parameters:
  • mtg_id – The primary key value of the meeting
  • att_id – The primary key value of the attachment
meetings.views.newattendance(request)[source]

Create a new meeting

meetings.views.rm_att(request, mtg_id, att_id)[source]

Remove an attachment from a meeting

Parameters:
  • mtg_id – The primary key value of the meeting
  • att_id – The primary key value of the attachment
meetings.views.send_invite(meeting, is_update=False, is_cancellation=False)[source]

Generate and send an interactive calendar invite for a meeting (separate from a meeting notice).

Parameters:
  • meeting – The meeting to include in the invite
  • is_update – Set to True if the meeting details have just been updated
  • is_cancellation – Set to True if the meeting has been cancelled
meetings.views.updateevent(request, mtg_id, event_id)[source]

Update crew chief assignments for an event

Parameters:
  • mtg_id – The primary key value of the meeting (redirects to meeting detail page)
  • event_id – The primary key value of the event (pre-2019 events only)
meetings.views.viewattendance(request, mtg_id)[source]

View event details


Forms

class meetings.forms.AnnounceCCSendForm(meeting, *args, **kwargs)[source]
class Meta[source]
fields = ('events', 'addtl_message', 'email_to')
model

alias of meetings.models.CCNoticeSend

widgets = {'addtl_message': <pagedown.widgets.PagedownWidget object>}
base_fields = {'addtl_message': <django.forms.fields.CharField object>, 'email_to': <django.forms.models.ModelChoiceField object>, 'events': <django.forms.models.ModelMultipleChoiceField object>}
declared_fields = {}
media
save(commit=True)[source]

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class meetings.forms.AnnounceSendForm(meeting, *args, **kwargs)[source]
class Meta[source]
fields = ('events', 'subject', 'message', 'email_to')
model

alias of meetings.models.MeetingAnnounce

widgets = {'message': <pagedown.widgets.PagedownWidget object>}
base_fields = {'email_to': <django.forms.models.ModelChoiceField object>, 'events': <django.forms.models.ModelMultipleChoiceField object>, 'message': <django.forms.fields.CharField object>, 'subject': <django.forms.fields.CharField object>}
declared_fields = {'events': <django.forms.models.ModelMultipleChoiceField object>}
media
save(commit=True)[source]

Save this form’s self.instance object if commit=True. Otherwise, add a save_m2m() method to the form which can be called after the instance is saved manually at a later time. Return the model instance.

class meetings.forms.MeetingAdditionForm(*args, **kwargs)[source]
class FieldAccess[source]
edit_closed = <data.forms.FieldAccessLevel object>
hasperm = <data.forms.FieldAccessLevel object>
no_closed = <data.forms.FieldAccessLevel object>
class Meta[source]
fields = ('meeting_type', 'location', 'datetime', 'attendance', 'duration', 'agenda', 'minutes', 'minutes_private')
model

alias of meetings.models.Meeting

widgets = {'datetime': <django.forms.widgets.DateInput object>}
base_fields = {'agenda': <django.forms.fields.CharField object>, 'attachments': <multiupload.fields.MultiFileField object>, 'attachments_private': <multiupload.fields.MultiFileField object>, 'attendance': <ajax_select.fields.AutoCompleteSelectMultipleField object>, 'datetime': <django.forms.fields.SplitDateTimeField object>, 'duration': <natural_duration.fields.NaturalDurationField object>, 'location': <django.forms.models.ModelChoiceField object>, 'meeting_type': <django.forms.models.ModelChoiceField object>, 'minutes': <django.forms.fields.CharField object>, 'minutes_private': <django.forms.fields.CharField object>}
declared_fields = {'agenda': <django.forms.fields.CharField object>, 'attachments': <multiupload.fields.MultiFileField object>, 'attachments_private': <multiupload.fields.MultiFileField object>, 'attendance': <ajax_select.fields.AutoCompleteSelectMultipleField object>, 'datetime': <django.forms.fields.SplitDateTimeField object>, 'duration': <natural_duration.fields.NaturalDurationField object>, 'location': <django.forms.models.ModelChoiceField object>, 'meeting_type': <django.forms.models.ModelChoiceField object>, 'minutes': <django.forms.fields.CharField object>, 'minutes_private': <django.forms.fields.CharField object>}
media
class meetings.forms.MtgAttachmentEditForm(*args, **kwargs)[source]
class Meta[source]
fields = ('name', 'file', 'private')
model

alias of meetings.models.MtgAttachment

base_fields = {'file': <django.forms.fields.FileField object>, 'name': <django.forms.fields.CharField object>, 'private': <django.forms.fields.BooleanField object>}
declared_fields = {}
media