Skip to content
Snippets Groups Projects

Superevents

Merged Tanner Prestegard requested to merge superevent into master
1 file
+ 19
17
Compare changes
  • Side-by-side
  • Inline
+ 19
17
@@ -4,11 +4,10 @@ from .buildVOEvent import construct_voevent_file
from .models import Superevent, Log, Labelling, EMObservation, EMFootprint, \
VOEvent, Signoff
from .shortcuts import is_superevent
from .models import Superevent, Log, Labelling, EMObservation, EMFootprint
from events.models import Event, EventLog, Tag
from events.models import Event, EventLog, Tag, Label
from events.permission_utils import assign_default_perms
from events.shortcuts import is_event
from core.vfile import VersionedFile
from core.vfile import create_versioned_file
from alerts.superevent_utils import issue_alert_for_superevent_creation, \
issue_alert_for_superevent_log, \
issue_alert_for_superevent_label_creation, \
@@ -160,10 +159,12 @@ def update_superevent(superevent, updater, issue_alert=True, **kwargs):
def create_log(issuer, comment, event_or_superevent, filename="",
data_file=None, tags=[], issue_alert=False, autogenerated=False):
data_file=None, tags=[], file_version=None, issue_alert=False,
autogenerated=False):
"""
Assume data have already been validated by a form or serializer.
tags should be a list of Tag objects (??)
data_file should be an in-memory file type
"""
# Initial dictionary for log creation
@@ -172,6 +173,9 @@ def create_log(issuer, comment, event_or_superevent, filename="",
'comment': comment,
'filename': filename,
}
if file_version is not None:
log_dict['file_version'] = file_version
if is_superevent(event_or_superevent):
log_dict['superevent'] = event_or_superevent
LogModel = Log
@@ -188,17 +192,14 @@ def create_log(issuer, comment, event_or_superevent, filename="",
# Create log object
log = LogModel.objects.create(**log_dict)
# Create data file
# Create versioned file
if data_file:
filepath = os.path.join(event_or_superevent.datadir, filename)
fdest = VersionedFile(filepath, 'w')
for chunk in data_file.chunks():
fdest.write(chunk)
fdest.close()
version = create_versioned_file(filename, event_or_superevent.datadir,
data_file)
# Update file_version
log.file_version = fdest.version
log.save()
log.file_version = version
log.save(update_fields=['file_version'])
# Add tags to log messages
for t in tags:
@@ -231,7 +232,7 @@ def add_tag_to_log(log, tag, user, add_log_message=True, issue_alert=False):
# Create log message to record tag addition?
log_for_tag_addition = None
if add_log_message:
comment = 'Tagged message {N}: {tag_name}'.format(N=log.N,
comment = 'Tagged message {N}: {tag_name}.'.format(N=log.N,
tag_name=tag.name)
event_or_superevent = get_log_parent(log)
log_for_tag_addition = create_log(user, comment, event_or_superevent,
@@ -249,8 +250,8 @@ def remove_tag_from_log(log, tag, user, add_log_message=True,
# Create log message to record tag removal?
log_for_tag_removal = None
if add_log_message:
comment = 'Removed tag {tag_name} from message {N}'.format(
N=log.N, tag_name=tag.name),
comment = 'Removed tag {tag_name} from message {N}.'.format(
N=log.N, tag_name=tag.name)
event_or_superevent = get_log_parent(log)
log_for_tag_removal = create_log(user, comment, event_or_superevent,
issue_alert=issue_alert, autogenerated=True)
@@ -397,13 +398,14 @@ def get_or_create_tags(tag_name_list, display_name_list=[]):
# TODO: add permissions checking?
# TODO: move this somewhere else?
def get_superevent_by_date_id_or_404(request, superevent_id):
def get_superevent_by_date_id_or_404(request, superevent_id, queryset=None):
filter_kwargs = Superevent.get_filter_kwargs_for_date_id_lookup(
superevent_id)
# TODO: filter queryset for user here
queryset = Superevent.objects.all()
if queryset is None:
queryset = Superevent.objects.all()
return get_object_or_404(queryset, **filter_kwargs)
Loading