Skip to content

Commit

Permalink
refactor and fix
Browse files Browse the repository at this point in the history
  • Loading branch information
darbula committed Jul 27, 2013
1 parent 094572a commit ed14336
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions filer/admin/folderadmin.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ def directory_listing(self, request, folder_id=None, viewtype=None):
permissions = {}
folder_files.sort()
items = folder_children + folder_files
items_permissions = [(item, self.has_change_permission(request, item)) for item in items]
items_permissions = [(item, {'change': self.has_change_permission(request, item)}) for item in items]
paginator = Paginator(items_permissions, FILER_PAGINATE_BY)

# Are we moving to clipboard?
Expand Down Expand Up @@ -367,7 +367,7 @@ def directory_listing(self, request, folder_id=None, viewtype=None):
in_clipboards__clipboarditem__clipboard__user=request.user
).distinct(),
'paginator': paginator,
'paginated_items': paginated_items, #(item, change_permission)
'paginated_items': paginated_items, # [(item, item_perms), ]
'permissions': permissions,
'permstest': userperms_for_request(folder, request),
'current_url': request.path,
Expand Down
12 changes: 6 additions & 6 deletions filer/templates/admin/filer/folder/directory_table.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@
</tr>
</thead>
<tbody>
{% for item, item_change_permission in paginated_items.object_list %}
{% for item, item_perms in paginated_items.object_list %}
{% if item.file_type == 'Folder' or item.file_type == 'DummyFolder' %}{% with item as subfolder%}
<tr class="{% cycle rowcolors %}">
<td>{% if select_folder and item.file_type == 'Folder' %}<a class="insertlink insertlinkButton" href="" onclick="opener.dismissRelatedFolderLookupPopup(window, {{ subfolder.id }}, '{{ subfolder.quoted_logical_path }}'); return false;" >&nbsp;</a>{% else %}{% if action_form and item.pk and not is_popup %}<input type="checkbox" class="action-select" value="folder-{{ item.pk }}" name="_selected_action" />{% endif %}{% endif %}</td>
<!-- DirIcon -->
<td><a href="{{ subfolder.get_admin_directory_listing_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with subfolder.name as item_label %}Change '{{ item_label }}' folder details{% endblocktrans %}"><img src="{{ subfolder.icons.48 }}" alt="{% trans "Folder Icon" %}" /></a></td>
<!-- Directory details -->
<td>
{% if item.file_type == 'Folder' and item_change_permission %}
{% if item.file_type == 'Folder' and item_perms.change %}
<a style="display: block; float: right;" class="changelink" href="{{ subfolder.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with subfolder.name as item_label %}Change '{{ item_label }}' folder details{% endblocktrans %}">{% trans "Change" %}</a>
{% endif %}
<div><b><a href="{{ subfolder.get_admin_directory_listing_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with subfolder.name as item_label %}Change '{{ item_label }}' folder details{% endblocktrans %}">{{ subfolder.name }}</a></b>{% if not subfolder.is_root %}<span class="tiny"> ({% blocktrans count subfolder.children_count as counter %}1 folder{% plural %}{{ counter }} folders{% endblocktrans %}, {% blocktrans count subfolder.file_count as counter %}1 file{% plural %}{{ counter }} files{% endblocktrans %})</span>{% endif %}</div>
Expand All @@ -36,20 +36,20 @@
<tr class="{% cycle rowcolors %}">
<td>{% if is_popup and not select_folder %}<a class="insertlink insertlinkButton" href="" onclick="opener.dismissRelatedImageLookupPopup(window, {{ file.id }}, '{{ file.icons.48|escapejs }}', '{{ file.label|escapejs }}'); return false;" title="{% trans "Select this file" %}">&nbsp;</a>{% else %}{% if action_form and not is_popup %}<input type="checkbox" class="action-select" value="file-{{ item.pk }}" name="_selected_action" />{% endif %}{% endif %}</td>
<!-- FileIcon -->
<td>{% if item_change_permission %}<a href="{{ file.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with file.label as item_label %}Change '{{ item_label }}' details{% endblocktrans %}">{% endif %}<img src="{% if file.icons.48 %}{{ file.icons.48 }}{% else %}{% filer_staticmedia_prefix %}icons/missingfile_48x48.png{% endif %}" alt="{{ file.default_alt_text }}" />{% if item_change_permission %}</a>{% endif %}</td>
<td>{% if item_perms.change %}<a href="{{ file.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with file.label as item_label %}Change '{{ item_label }}' details{% endblocktrans %}">{% endif %}<img src="{% if file.icons.48 %}{{ file.icons.48 }}{% else %}{% filer_staticmedia_prefix %}icons/missingfile_48x48.png{% endif %}" alt="{{ file.default_alt_text }}" />{% if item_perms.change %}</a>{% endif %}</td>
<!-- Filename/Dimensions -->
<td>
{% if item_change_permission %}
{% if item_perms.change %}
<a style="display: block; float: right;margin-left: 10px;" class="deletelink" href="{% url 'admin:filer_file_delete' file.pk %}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}"" title="{% blocktrans with file.label as item_label %}Delete '{{ item_label }}'{% endblocktrans %}">{% trans "Delete" %}</a>
<a style="display: block; float: right;" class="changelink" href="{{ file.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with file.label as item_label %}Change '{{ item_label }}' details{% endblocktrans %}">{% trans "Change" %}</a>
{% endif %}
<div><b>{% if item_change_permission %}<a href="{{ file.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with file.label as item_label %}Change '{{ item_label }}' details{% endblocktrans %}">{% endif %}{{ file.label }}{% if item_change_permission %}</a>{% endif %}</b><span class="tiny"> ({{ file.size|filesize:"auto1000long" }}{% ifequal file.file_type "Image" %}, {{ file.width }}x{{ file.height }} px{% endifequal %})</span></div>
<div><b>{% if item_perms.change %}<a href="{{ file.get_admin_url_path }}{% if is_popup %}?_popup=1{% if select_folder %}&select_folder=1{% endif %}{% endif %}" title="{% blocktrans with file.label as item_label %}Change '{{ item_label }}' details{% endblocktrans %}">{% endif %}{{ file.label }}{% if item_perms.change %}</a>{% endif %}</b><span class="tiny"> ({{ file.size|filesize:"auto1000long" }}{% ifequal file.file_type "Image" %}, {{ file.width }}x{{ file.height }} px{% endifequal %})</span></div>
<div>{% trans "Owner" %}: {{ file.owner|default:"n/a" }}</div>
{% if enable_permissions %}<div>{% trans "Permissions" %}: {% if file.is_public %}{% trans "disabled" %}{% else %}{% trans "enabled" %}{% endif %}</div>{% endif %}
{# {% if file.has_all_mandatory_data %}<div><img alt="0" src="{% admin_icon_base %}img/admin/icon-yes.gif" /> {% trans "has all mandatory metadata" %}</div>{% else %}<div><img alt="1" src="{% admin_icon_base %}img/admin/icon-no.gif"/> {% trans "missing metadata!" %}</div>{% endif %} #}
</td>
<td style="text-align: right;">
<input type="submit" name="move-to-clipboard-{{ file.id }}" value="&rarr;" title="{% trans "Move to clipboard" %}"{% if file in clipboard_files or not item_change_permission %} style="color: gray;" disabled="disabled"{% endif %} />
<input type="submit" name="move-to-clipboard-{{ file.id }}" value="&rarr;" title="{% trans "Move to clipboard" %}"{% if file in clipboard_files or not item_perms.change %} style="color: gray;" disabled="disabled"{% endif %} />
</td>
</tr>
{% endwith %}{% endif %}
Expand Down
8 changes: 4 additions & 4 deletions filer/tests/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ def test_with_permissions_disabled(self):
item_list = response.context['paginated_items'].object_list
# user sees all items: FOO, BAR, BAZ, SAMP
self.assertEquals(
set(folder.pk for folder in item_list),
set(folder.pk for folder, folder_perms in item_list),
set([self.foo_folder.pk, self.bar_folder.pk, self.baz_folder.pk,
self.spam_file.pk]))

Expand All @@ -473,7 +473,7 @@ def test_folder_ownership(self):
# he doesn't see BAR, BAZ and SPAM because he doesn't own them
# and no permission has been given
self.assertEquals(
set(folder.pk for folder in item_list),
set(folder.pk for folder, folder_perms in item_list),
set([self.foo_folder.pk]))

def test_with_permission_given_to_folder(self):
Expand All @@ -492,7 +492,7 @@ def test_with_permission_given_to_folder(self):
item_list = response.context['paginated_items'].object_list
# user sees 2 folder : FOO, BAR
self.assertEquals(
set(folder.pk for folder in item_list),
set(folder.pk for folder, folder_perms in item_list),
set([self.foo_folder.pk, self.bar_folder.pk]))

def test_with_permission_given_to_parent_folder(self):
Expand All @@ -510,6 +510,6 @@ def test_with_permission_given_to_parent_folder(self):
item_list = response.context['paginated_items'].object_list
# user sees all items because he has permissions on the parent folder
self.assertEquals(
set(folder.pk for folder in item_list),
set(folder.pk for folder, folder_perms in item_list),
set([self.foo_folder.pk, self.bar_folder.pk, self.baz_folder.pk,
self.spam_file.pk]))

0 comments on commit ed14336

Please sign in to comment.