diff --git a/smash/web/forms/forms.py b/smash/web/forms/forms.py
index 3106fba657d935031fcf148a5cbe6c253dc6c9d2..acead32df6e5e1401a5346ecbec59be00aac8d8d 100644
--- a/smash/web/forms/forms.py
+++ b/smash/web/forms/forms.py
@@ -60,6 +60,14 @@ class VisitDetailForm(ModelForm):
     appointment_types = forms.ModelMultipleChoiceField(required=False, widget=forms.CheckboxSelectMultiple,
                                                        queryset=AppointmentType.objects.all())
 
+    def __init__(self, *args, **kwargs):
+        super(VisitDetailForm, self).__init__(*args, **kwargs)
+        instance = getattr(self, 'instance', None)
+        if instance.is_finished: #set form as readonly
+            for key in self.fields.keys():
+                self.fields[key].widget.attrs['readonly'] = True
+
+
     class Meta:
         model = Visit
         exclude = ['is_finished', 'visit_number']
diff --git a/smash/web/templates/includes/visit_appointment_types_field.html b/smash/web/templates/includes/visit_appointment_types_field.html
index 4e167755b38db5821992197a8d3edf9ddb12245c..8cd1998f280aaebad4286e617f260e0191f00dbd 100644
--- a/smash/web/templates/includes/visit_appointment_types_field.html
+++ b/smash/web/templates/includes/visit_appointment_types_field.html
@@ -13,7 +13,7 @@
                                          background: orange;
                                      {% endif %}{% endif %}{% endfor %}{% endfor %}
                                      "></div>
-                        <input {% if readonly %}disabled="disabled"{% endif %}
+                        <input {% if field.field.widget.attrs.readonly %}disabled="disabled"{% endif %}
                                {% for option in field.value %}{% if option == pk|slugify or option == pk %}checked="checked"
                                {% endif %}{% endfor %} type="checkbox"
                                id="id_{{ field.name }}_{{ forloop.counter0 }}"