diff --git a/apps/common/templates/generic_form_instance.html b/apps/common/templates/generic_form_instance.html
index d291d382f9..13dbf0c933 100644
--- a/apps/common/templates/generic_form_instance.html
+++ b/apps/common/templates/generic_form_instance.html
@@ -27,7 +27,11 @@
{% endfor %}
{% else %}
- {% for field in form %}
+ {% for field in form.hidden_fields %}
+ {{ field }}
+ {% endfor %}
+
+ {% for field in form.visible_fields %}
{% if field.errors %}
{% endif %}
diff --git a/apps/documents/forms.py b/apps/documents/forms.py
index 5c053b427f..fa2f0b5634 100644
--- a/apps/documents/forms.py
+++ b/apps/documents/forms.py
@@ -13,7 +13,14 @@ from models import Document, DocumentType, DocumentTypeMetadataType
from documents.conf.settings import AVAILABLE_FUNCTIONS
+
class DocumentForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ super(DocumentForm, self).__init__(*args, **kwargs)
+ if 'initial' in kwargs:
+ if 'document_type' in kwargs['initial']:
+ self.fields['document_type'].widget = forms.HiddenInput()
+
class Meta:
model = Document
diff --git a/apps/documents/views.py b/apps/documents/views.py
index 973fb20cd2..656ad998b5 100644
--- a/apps/documents/views.py
+++ b/apps/documents/views.py
@@ -72,6 +72,7 @@ def upload_document_with_type(request, document_type_id, multiple=True):
def document_view(request, document_id):
document = get_object_or_404(Document, pk=document_id)
form = DocumentForm_view(instance=document, extra_fields=[
+ {'label':_(u'Document type'), 'field':'document_type'},
{'label':_(u'Filename'), 'field':'file_filename'},
{'label':_(u'File extension'), 'field':'file_extension'},
{'label':_(u'File mimetype'), 'field':'file_mimetype'},