restore Dossier Readonly
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 28 Sep 2012 20:07:45 +0000 (16:07 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 28 Sep 2012 20:07:45 +0000 (16:07 -0400)
project/rh/admin.py
project/rh/templates/admin/rh/dossier/linked.html

index adb1099..ef061d0 100644 (file)
@@ -268,6 +268,22 @@ class ContratInline(admin.TabularInline):
     extra = 1
 
 
+class DossierROInline(ReadOnlyInlineMixin, LinkedInline):
+    template = "admin/rh/dossier/linked.html"
+    model = rh.Dossier
+    extra = 0
+    can_delete = False
+
+    def has_add_permission(self, request=None):
+        return False
+
+    def has_change_permission(self, request, obj=None):
+        return False
+
+    def has_delete_permission(self, request, obj=None):
+        return False
+
+
 class DossierCommentaireInline(admin.TabularInline):
     readonly_fields = ('owner',)
     model = rh.DossierCommentaire
@@ -568,7 +584,7 @@ class EmployeAdminBase(DateRangeMixin, ProtectRegionMixin,
         'rh_dossiers__poste__implantation', 'nb_postes'
     )
     inlines = (
-        AyantDroitInline, EmployePieceInline,
+        AyantDroitInline, DossierROInline, EmployePieceInline,
         EmployeCommentaireInline
     )
     fieldsets = (
@@ -780,6 +796,7 @@ class OrganismeBstgAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
     search_fields = ('nom',)
     list_display = ('nom', 'type', 'pays', 'derniere_modification')
     list_filter = ('type', )
+    inlines = (DossierROInline,)
     fieldsets = (
         (None, {'fields': ('nom', 'type', 'pays',)}),
     )
@@ -872,6 +889,7 @@ class PosteAdmin(DateRangeMixin, ProtectRegionMixin, reversion.VersionAdmin,
 
     inlines = (PosteFinancementInline,
                PostePieceInline,
+               DossierROInline,
                PosteComparaisonInline,
                PosteCommentaireInline, )
 
index 4700e6a..cf2c9df 100644 (file)
@@ -4,60 +4,16 @@
 {{ inline_admin_formset.formset.management_form }}
 <fieldset class="module">
    <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2>
-   {{ inline_admin_formset.formset.non_form_errors }}
    <table>
-     <thead><tr>
-     {% for field in inline_admin_formset.fields %}
-       {% if not field.widget.is_hidden %}
-         <th{% if forloop.first %} colspan="2"{% endif %}{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }}</th>
-       {% endif %}
-     {% endfor %}
-     {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %}
-     </tr></thead>
-
      <tbody>
      {% for inline_admin_form in inline_admin_formset %}
-        {% if inline_admin_form.form.non_field_errors %}
-        <tr><td colspan="{{ inline_admin_form.field_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr>
-        {% endif %}
         <tr class="{% cycle "row1" "row2" %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last %} empty-form{% endif %}"
              id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}">
         <td class="original">
-          {% if inline_admin_form.original or inline_admin_form.show_url %}<p>
           {% if inline_admin_form.original %}
           <a href="{% url dossier_apercu inline_admin_form.original.pk %}" onclick="return showAddAnotherPopup(this);">{{ inline_admin_form.original }}</a>
           {% endif %}
-          {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %}
-            </p>{% endif %}
-          {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %}
-          {{ inline_admin_form.fk_field.field }}
-          {% spaceless %}
-          {% for fieldset in inline_admin_form %}
-            {% for line in fieldset %}
-              {% for field in line %}
-                {% if field.is_hidden %} {{ field.field }} {% endif %}
-              {% endfor %}
-            {% endfor %}
-          {% endfor %}
-          {% endspaceless %}
         </td>
-        {% for fieldset in inline_admin_form %}
-          {% for line in fieldset %}
-            {% for field in line %}
-              <td class="{{ field.field.name }}">
-              {% if field.is_readonly %}
-                  <p>{{ field.contents }}</p>
-              {% else %}
-                  {{ field.field.errors.as_ul }}
-                  {{ field.field }}
-              {% endif %}
-              </td>
-            {% endfor %}
-          {% endfor %}
-        {% endfor %}
-        {% if inline_admin_formset.formset.can_delete %}
-          <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td>
-        {% endif %}
         </tr>
      {% endfor %}
      </tbody>
 </fieldset>
   </div>
 </div>
-
-<script type="text/javascript">
-(function($) {
-    $(document).ready(function($) {
-        var rows = "#{{ inline_admin_formset.formset.prefix }}-group .tabular.inline-related tbody tr";
-        var alternatingRows = function(row) {
-            $(rows).not(".add-row").removeClass("row1 row2")
-                .filter(":even").addClass("row1").end()
-                .filter(rows + ":odd").addClass("row2");
-        }
-        var reinitDateTimeShortCuts = function() {
-            // Reinitialize the calendar and clock widgets by force
-            if (typeof DateTimeShortcuts != "undefined") {
-                $(".datetimeshortcuts").remove();
-                DateTimeShortcuts.init();
-            }
-        }
-        var updateSelectFilter = function() {
-            // If any SelectFilter widgets are a part of the new form,
-            // instantiate a new SelectFilter instance for it.
-            if (typeof SelectFilter != "undefined"){
-                $(".selectfilter").each(function(index, value){
-                  var namearr = value.name.split('-');
-                  SelectFilter.init(value.id, namearr[namearr.length-1], false, "{% admin_media_prefix %}");
-                })
-                $(".selectfilterstacked").each(function(index, value){
-                  var namearr = value.name.split('-');
-                  SelectFilter.init(value.id, namearr[namearr.length-1], true, "{% admin_media_prefix %}");
-                })
-            }
-        }
-        var initPrepopulatedFields = function(row) {
-            row.find('.prepopulated_field').each(function() {
-                var field = $(this);
-                var input = field.find('input, select, textarea');
-                var dependency_list = input.data('dependency_list') || [];
-                var dependencies = [];
-                $.each(dependency_list, function(i, field_name) {
-                  dependencies.push('#' + row.find(field_name).find('input, select, textarea').attr('id'));
-                });
-                if (dependencies.length) {
-                    input.prepopulate(dependencies, input.attr('maxlength'));
-                }
-            });
-        }
-        {% if inline_admin_formset.formset.has_add_permission != False %}
-        $(rows).formset({
-            prefix: "{{ inline_admin_formset.formset.prefix }}",
-            addText: "{% blocktrans with inline_admin_formset.opts.verbose_name|title as verbose_name %}Add another {{ verbose_name }}{% endblocktrans %}",
-            formCssClass: "dynamic-{{ inline_admin_formset.formset.prefix }}",
-            deleteCssClass: "inline-deletelink",
-            deleteText: "{% trans "Remove" %}",
-            emptyCssClass: "empty-form",
-            removed: alternatingRows,
-            added: (function(row) {
-                initPrepopulatedFields(row);
-                reinitDateTimeShortCuts();
-                updateSelectFilter();
-                alternatingRows(row);
-            })
-        });
-        {% endif %}
-    });
-})(django.jQuery);
-</script>