diff --git a/.bootstraprc b/.bootstraprc
index 6c92d1c231dd79fcd038f0f96c1504f9756e0b75..34dcfd0ae1a6e3d04f0e5dcce547594b437e8e5d 100644
--- a/.bootstraprc
+++ b/.bootstraprc
@@ -23,6 +23,7 @@
         "grid": true,
         "input-group": true,
         "list-group": true,
+        "media": true,
         "modal": true,
         "mixins": true,
         "nav": true,
diff --git a/SciPost_v1/urls.py b/SciPost_v1/urls.py
index 13711bb780de959a0325ff40ee66840435e020c2..adf26e3aa41c52e07475da80c70f1e99700c13c7 100644
--- a/SciPost_v1/urls.py
+++ b/SciPost_v1/urls.py
@@ -1,5 +1,6 @@
 from django.conf import settings
 from django.conf.urls import include, url
+from django.conf.urls.static import static
 from django.contrib import admin
 
 from ajax_select import urls as ajax_select_urls
@@ -34,6 +35,5 @@ urlpatterns = [
 
 if settings.DEBUG:
     import debug_toolbar
-    urlpatterns += [
-        url(r'^__debug__/', include(debug_toolbar.urls)),
-    ]
+    urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
+    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/partners/constants.py b/partners/constants.py
index 7cbc74d9569857974e5ec582d7e35c5de5c482db..3349c8afffb575037f717005d935d91241f016dc 100644
--- a/partners/constants.py
+++ b/partners/constants.py
@@ -74,8 +74,10 @@ PARTNER_EVENTS = (
 
 
 CONTACT_TYPES = (
+    ('gen', 'General Contact'),
     ('tech', 'Technical Contact'),
     ('fin', 'Financial Contact'),
+    ('leg', 'Legal Contact')
 )
 
 
diff --git a/partners/forms.py b/partners/forms.py
index 09d849ca6c3aee2d2c674fcbaba72677c57c7f08..96e898acb0b5992be5633e7bab6b9669147c0372 100644
--- a/partners/forms.py
+++ b/partners/forms.py
@@ -112,7 +112,8 @@ class InstitutionForm(forms.ModelForm):
             'name',
             'acronym',
             'address',
-            'country'
+            'country',
+            'logo'
         )
 
 
diff --git a/partners/migrations/0021_auto_20170626_2014.py b/partners/migrations/0021_auto_20170626_2014.py
new file mode 100644
index 0000000000000000000000000000000000000000..c55b21c250a1d7647b726b2c142afa1fef18bcd2
--- /dev/null
+++ b/partners/migrations/0021_auto_20170626_2014.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-06-26 18:14
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import scipost.fields
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('partners', '0020_auto_20170624_2013'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='institution',
+            name='logo',
+            field=models.ImageField(blank=True, upload_to='UPLOADS/INSTITUTIONS/LOGOS/%Y/%m/'),
+        ),
+        migrations.AlterField(
+            model_name='contact',
+            name='kind',
+            field=scipost.fields.ChoiceArrayField(base_field=models.CharField(choices=[('gen', 'General Contact'), ('tech', 'Technical Contact'), ('fin', 'Financial Contact'), ('leg', 'Legal Contact')], max_length=4), size=None),
+        ),
+    ]
diff --git a/partners/migrations/0022_auto_20170626_2104.py b/partners/migrations/0022_auto_20170626_2104.py
new file mode 100644
index 0000000000000000000000000000000000000000..678678be652fa3951b010c20d82ee2f7a89d0b2b
--- /dev/null
+++ b/partners/migrations/0022_auto_20170626_2104.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-06-26 19:04
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('partners', '0021_auto_20170626_2014'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='institution',
+            name='logo',
+            field=models.ImageField(blank=True, upload_to='institutions/logo/%Y/'),
+        ),
+    ]
diff --git a/partners/models.py b/partners/models.py
index 89cd1660dbe99b2f726fd3e32012581373436ef3..65652eca643ab5aece2d103451e1d0f9a7db24ce 100644
--- a/partners/models.py
+++ b/partners/models.py
@@ -108,6 +108,7 @@ class Institution(models.Model):
     """
     kind = models.CharField(max_length=32, choices=PARTNER_KINDS)
     name = models.CharField(max_length=256)
+    logo = models.ImageField(upload_to='institutions/logo/%Y/', blank=True)
     acronym = models.CharField(max_length=16)
     address = models.TextField(blank=True)
     country = CountryField()
diff --git a/partners/templates/partners/dashboard.html b/partners/templates/partners/dashboard.html
index 17ae1a2f12891069014a53758e66d84ea1e58657..48809ccd703d9fecbb665b24c087181806af68b5 100644
--- a/partners/templates/partners/dashboard.html
+++ b/partners/templates/partners/dashboard.html
@@ -57,10 +57,16 @@
                 {% include "partners/_contact_info_table.html" with contact=request.user.partner_contact %}
             </div>
             <div class="col-md-6">
-                <h3>My Partners</h3>
-                <ul>
+                <h3 class="mb-2">My Partners</h3>
+                <ul class="list-unstyled mb-5">
                     {% for partner in request.user.partner_contact.partners.all %}
-                        <li>{{partner.institution}}</li>
+                        <li class="media mb-2">
+                            <img class="d-flex mr-3" width="64" src="{% if partner.institution.logo %}{{partner.institution.logo.url}}{% endif %}" alt="Partner Logo">
+                            <div class="media-body">
+                                <h3 class="mt-0 mb-1"><strong>{{partner.institution.name}}</strong></h3>
+                                {{partner.institution.acronym}} ({{partner.institution.get_kind_display}})
+                            </div>
+                        </li>
                     {% empty %}
                         <li>No partners found. Please contact the SciPost admin.</li>
                     {% endfor %}
diff --git a/partners/templates/partners/institution_edit.html b/partners/templates/partners/institution_edit.html
index 69133f2840bc995a941f4390bf080becdbadcec4..46fed7ad380de950082effef4fd9a292c37b1310 100644
--- a/partners/templates/partners/institution_edit.html
+++ b/partners/templates/partners/institution_edit.html
@@ -19,7 +19,7 @@
 
 <div class="row">
     <div class="col-12">
-      <form method="post">
+      <form method="post" enctype="multipart/form-data">
         {% csrf_token %}
         <div class="mb-5">
             {{ form|bootstrap }}
diff --git a/partners/views.py b/partners/views.py
index f0d8dfc6059a40624073468716ed201c94f19140..2580012c310643a61ac13701e6c8ca0b2710c7a4 100644
--- a/partners/views.py
+++ b/partners/views.py
@@ -177,9 +177,12 @@ def partner_add_contact(request, partner_id):
 @permission_required('scipost.can_manage_SPB', return_403=True)
 def institution_edit(request, institution_id):
     institution = get_object_or_404(Institution, id=institution_id)
-    form = InstitutionForm(request.POST or None, instance=institution)
+    form = InstitutionForm(request.POST or None, request.FILES or None, instance=institution)
+    r = request.FILES
+    # raise
     if form.is_valid():
         form.save()
+        messages.success(request, 'Institution has been updated.')
         return redirect(reverse('partners:dashboard'))
     context = {
         'form': form