mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
Improve history collection and add link to history page
Save individual field changes into revision comment and display this comment on the history page. Now we're ready to add a link at the bottom of every page so the history is easily visible. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
parent
5a07f0422d
commit
d1b875a76b
1
TODO
1
TODO
|
@ -7,7 +7,6 @@ TODO:
|
||||||
|
|
||||||
Later:
|
Later:
|
||||||
* Breadcrumbs / fix tab navigation?
|
* Breadcrumbs / fix tab navigation?
|
||||||
* Detailed change history page [Paul working on this]
|
|
||||||
* Ability for reviewers to comment before publishing a layer?
|
* Ability for reviewers to comment before publishing a layer?
|
||||||
* Add link to the all layers and all recipes tables from the layer details page?
|
* Add link to the all layers and all recipes tables from the layer details page?
|
||||||
* Prevent SMTP failures from breaking submission process
|
* Prevent SMTP failures from breaking submission process
|
||||||
|
|
|
@ -25,6 +25,8 @@ from django.contrib.auth.decorators import login_required
|
||||||
from reversion.models import Revision
|
from reversion.models import Revision
|
||||||
import simplesearch
|
import simplesearch
|
||||||
import settings
|
import settings
|
||||||
|
from django.dispatch import receiver
|
||||||
|
import reversion
|
||||||
|
|
||||||
|
|
||||||
def edit_layernote_view(request, template_name, slug, pk=None):
|
def edit_layernote_view(request, template_name, slug, pk=None):
|
||||||
|
@ -339,3 +341,44 @@ class EditProfileFormView(UpdateView):
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse('frontpage')
|
return reverse('frontpage')
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(reversion.pre_revision_commit)
|
||||||
|
def annotate_revision(sender, **kwargs):
|
||||||
|
ignorefields = ['vcs_last_rev', 'vcs_last_fetch', 'vcs_last_commit']
|
||||||
|
versions = kwargs.pop('versions')
|
||||||
|
instances = kwargs.pop('instances')
|
||||||
|
changelist = []
|
||||||
|
for ver, inst in zip(versions, instances):
|
||||||
|
currentVersion = ver.field_dict
|
||||||
|
modelmeta = ver.content_type.model_class()._meta
|
||||||
|
if ver.type == reversion.models.VERSION_DELETE:
|
||||||
|
changelist.append("Deleted %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
||||||
|
else:
|
||||||
|
pastver = reversion.get_for_object(inst)
|
||||||
|
if pastver and ver.type != reversion.models.VERSION_ADD:
|
||||||
|
pastVersion = pastver[0].field_dict
|
||||||
|
changes = set(currentVersion.items()) - set(pastVersion.items())
|
||||||
|
changedVars = [var[0] for var in changes]
|
||||||
|
fieldchanges = []
|
||||||
|
for field in changedVars:
|
||||||
|
if field not in ignorefields:
|
||||||
|
modelfield = modelmeta.get_field(field)
|
||||||
|
newvalue = currentVersion[field]
|
||||||
|
if modelfield.choices:
|
||||||
|
for v in modelfield.choices:
|
||||||
|
if v[0] == newvalue:
|
||||||
|
newvalue = v[1]
|
||||||
|
break
|
||||||
|
fieldchanges.append("%s to '%s'" % (modelfield.verbose_name.lower(), newvalue))
|
||||||
|
if fieldchanges:
|
||||||
|
changelist.append("Changed %s %s %s" % (modelmeta.verbose_name.lower(), ver.object_repr, ", ".join(fieldchanges)))
|
||||||
|
else:
|
||||||
|
changelist.append("Added %s: %s" % (modelmeta.verbose_name.lower(), ver.object_repr))
|
||||||
|
comment = '\n'.join(changelist)
|
||||||
|
if not comment:
|
||||||
|
comment = 'No changes'
|
||||||
|
revision = kwargs.pop('revision')
|
||||||
|
revision.comment = comment
|
||||||
|
revision.save()
|
||||||
|
kwargs['revision'] = revision
|
||||||
|
|
|
@ -95,7 +95,8 @@
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<hr />
|
<hr />
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<a href="{% url about %}">about this site</a>
|
<a href="{% url history_list %}">change history</a>
|
||||||
|
• <a href="{% url about %}">about this site</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -32,10 +32,14 @@
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for revision in revisions %}
|
{% for revision in revisions %}
|
||||||
|
{% if revision.comment != 'No changes' %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ revision.date_created|timesince }} ago</td>
|
<td>{{ revision.date_created|timesince }} ago</td>
|
||||||
<td>{{ revision.user }}</td>
|
<td>{{ revision.user }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
{% if revision.comment %}
|
||||||
|
{{ revision.comment|linebreaksbr }}
|
||||||
|
{% else %}
|
||||||
{% for version in revision.version_set.all %}
|
{% for version in revision.version_set.all %}
|
||||||
{% if version.type = 0 %}
|
{% if version.type = 0 %}
|
||||||
Added
|
Added
|
||||||
|
@ -47,8 +51,10 @@
|
||||||
{{ version.content_type.name.lower }}: {{ version.object_repr }}
|
{{ version.content_type.name.lower }}: {{ version.object_repr }}
|
||||||
<br>
|
<br>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user