Add special view for displaying / editing notes field for part

This commit is contained in:
Oliver Walters 2020-02-01 13:36:09 +11:00
parent c546ed5dcd
commit 3c3ae43c18
4 changed files with 47 additions and 10 deletions

View File

@ -101,7 +101,7 @@ urlpatterns = [
url(r'^api/', include(apipatterns)),
url(r'^api-doc/', include_docs_urls(title='InvenTree API')),
url(r'^md/', include('markdownx.urls')),
url(r'^markdownx/', include('markdownx.urls')),
]
# Static file access

View File

@ -1,5 +1,6 @@
{% extends "part/part_base.html" %}
{% load static %}
{% load crispy_forms_tags %}
{% load i18n %}
{% load markdownify %}
@ -9,18 +10,26 @@
<h4>{% trans "Part Notes" %}</h4>
{% if editing %}
<form method='POST'>
{% csrf_token %}
{{ form }}
<input type="submit" value="Update" />
</form>
{{ form.media }}
{% else %}
<div class='panel panel-default'>
<div class='panel-body'>
{{ part.notes | markdownify }}
</div>
</div>
<form method="post" action="">
{% csrf_token %}
{{ form }}
</form>
{{ form.media }}
{% endif %}
{% endblock %}

View File

@ -52,7 +52,7 @@ part_detail_urls = [
url(r'^orders/?', views.PartDetail.as_view(template_name='part/orders.html'), name='part-orders'),
url(r'^track/?', views.PartDetail.as_view(template_name='part/track.html'), name='part-track'),
url(r'^attachments/?', views.PartDetail.as_view(template_name='part/attachments.html'), name='part-attachments'),
url(r'^notes/?', views.PartDetail.as_view(template_name='part/notes.html'), name='part-notes'),
url(r'^notes/?', views.PartNotes.as_view(), name='part-notes'),
url(r'^qr_code/?', views.PartQRCode.as_view(), name='part-qr'),

View File

@ -11,7 +11,7 @@ from django.shortcuts import get_object_or_404
from django.shortcuts import HttpResponseRedirect
from django.utils.translation import gettext_lazy as _
from django.urls import reverse, reverse_lazy
from django.views.generic import DetailView, ListView, FormView
from django.views.generic import DetailView, ListView, FormView, UpdateView
from django.forms.models import model_to_dict
from django.forms import HiddenInput, CheckboxInput
@ -519,6 +519,34 @@ class PartCreate(AjaxCreateView):
return initials
class PartNotes(UpdateView):
""" View for editing the 'notes' field of a Part object.
Presents a live markdown editor.
"""
context_object_name = 'part'
# form_class = part_forms.EditNotesForm
template_name = 'part/notes.html'
model = Part
fields = ['notes']
def get_context_data(self, **kwargs):
part = self.get_object()
ctx = super().get_context_data(**kwargs)
ctx['editing'] = str2bool(self.request.GET.get('edit', ''))
ctx['starred'] = part.isStarredBy(self.request.user)
ctx['disabled'] = not part.active
ctx['OrderStatus'] = OrderStatus
return ctx
class PartDetail(DetailView):
""" Detail view for Part object
"""