Skip to content

Commit 252db0d

Browse files
committed
Fix some bugs, add correct document events in materials upload
- Legacy-Id: 7780
1 parent 47c9ccf commit 252db0d

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

ietf/group/edit.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515

1616
import debug # pyflakes:ignore
1717

18-
from ietf.doc.models import Document, DocAlias, DocTagName, DocTypeName, DocEvent, State, save_document_in_history
19-
from ietf.doc.utils import get_tags_for_stream_id
18+
from ietf.doc.models import Document, DocAlias, DocTagName, DocTypeName, DocEvent, State
19+
from ietf.doc.models import NewRevisionDocEvent, save_document_in_history
20+
from ietf.doc.utils import get_tags_for_stream_id, add_state_change_event
2021
from ietf.group.models import ( Group, Role, GroupEvent, GroupHistory, GroupStateName,
2122
GroupStateTransitions, GroupTypeName, GroupURL, ChangeStateGroupEvent )
2223
from ietf.group.utils import (save_group_in_history, can_manage_group_type, can_manage_materials,
@@ -471,6 +472,7 @@ def __init__(self, *args, **kwargs):
471472
if action == "new":
472473
self.fields["state"].widget = forms.HiddenInput()
473474
self.fields["state"].queryset = self.fields["state"].queryset.filter(slug="active")
475+
self.fields["state"].initial = self.fields["state"].queryset[0].pk
474476
else:
475477
self.fields["title"].initial = doc.title
476478
self.fields["state"].initial = doc.get_state().pk if doc.get_state() else None
@@ -504,6 +506,10 @@ def edit_material(request, acronym, action="new", name=None, group_type=None):
504506
else:
505507
d = existing
506508

509+
prev_rev = d.rev
510+
prev_title = d.title
511+
prev_state = d.get_state()
512+
507513
d.title = form.cleaned_data["title"]
508514
d.time = datetime.datetime.now()
509515

@@ -529,16 +535,23 @@ def edit_material(request, acronym, action="new", name=None, group_type=None):
529535

530536
d.save()
531537

532-
# FIXME: missing edit title event
538+
if not existing or prev_rev != d.rev:
539+
e = NewRevisionDocEvent(type="new_revision", doc=d, rev=d.rev)
540+
e.time = d.time
541+
e.by = request.user.person
542+
e.desc = "New version available: <b>%s-%s</b>" % (d.name, d.rev)
543+
e.save()
544+
545+
if prev_title != d.title:
546+
e = DocEvent(doc=d, by=request.user.person, type='changed_document')
547+
e.desc = u"Changed title to <b>%s</b>" % d.title
548+
if prev_title:
549+
e.desc += u" from %s" % prev_title
550+
e.time = d.time
551+
e.save()
533552

534-
# FIXME: missing changed state event
535553
d.set_state(form.cleaned_data["state"])
536-
537-
# FIXME: wrong, should be new revision event
538-
DocEvent.objects.create(doc=d,
539-
by=request.user.person,
540-
type='uploaded',
541-
desc="Uploaded material")
554+
add_state_change_event(d, request.user.person, prev_state, form.cleaned_data["state"])
542555

543556
return redirect("group_materials", acronym=group.acronym)
544557
else:

0 commit comments

Comments
 (0)