Skip to content

Commit a8af6bf

Browse files
Patrick SandifordPatrick Sandiford
Patrick Sandiford
authored and
Patrick Sandiford
committed
moved to query parameters
1 parent 03f712d commit a8af6bf

File tree

3 files changed

+52
-68
lines changed

3 files changed

+52
-68
lines changed

swift_browser/templates/container.html

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,8 @@
77

88
<ul class="breadcrumb">
99
<li><a href="{% url 'containers' %}">Containers</a></li>
10-
<li> <form action="{% url 'container' %}" method="POST" class="no-bottom-margin-form">
11-
{% csrf_token %}
12-
<input type="hidden" name="container" value="{{container}}"/>
13-
<input type="hidden" name="subdir" value=""/>
14-
{% bootstrap_button container button_type='submit' button_class='btn-link' %}
15-
</form>
10+
<li>
11+
<a href="{% url 'container' %}?container={{container}}">{{container}}</a>
1612
</li>
1713

1814
{% for path_element in path_elements %}
@@ -50,12 +46,9 @@
5046
<tr>
5147
<td class="hidden-phone">{% bootstrap_icon "folder-open" %}</td>
5248
<td>
53-
<form action="{% url 'container' %}" method="POST">
54-
{% csrf_token %}
55-
<input type="hidden" name="container" value="{{container}}"/>
56-
<input type="hidden" name="subdir" value="{{subdir}}"/>
57-
{% bootstrap_button subdir button_type='submit' button_class='btn-link' %}
58-
</form>
49+
<strong>
50+
<a href="{% url 'container' %}?container={{container}}&subdir={{subdir}}/">{{subdir}}</a>
51+
</strong>
5952
</td>
6053
<td class="hidden-phone"></td>
6154
<td class="hidden-phone"></td>

swift_browser/templates/containers.html

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,9 @@
2929
<tr>
3030
<td class="hidden-phone"><i class="icon-inbox"></i></td>
3131
<td>
32-
<form action="{% url 'container' %}" method="POST">
33-
{% csrf_token %}
34-
<input type="hidden" name="container" value="{{container.name}}"/>
35-
<input type="hidden" name="subdir" value=""/>
36-
{% bootstrap_button container.name button_type='submit' button_class='btn-link' %}
37-
</form>
32+
<strong>
33+
<a href="{% url 'container' %}?container={{container.name}}">{{container.name}}</a>
34+
</strong>
3835
</td>
3936
<td class="hidden-phone">{{container.count}}</td>
4037
<td class="hidden-phone">{{container.bytes|filesizeformat}}</td>

swift_browser/views.py

Lines changed: 44 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -109,58 +109,52 @@ def container(request, container=None):
109109
auth_token = request.session['auth_token']
110110
storage_url = request.session['storage_url']
111111

112-
if request.method == 'POST':
113-
form = ViewContainerForm(request.POST)
114-
for row in form.fields.values():
115-
print(row)
116-
if form.is_valid():
117-
container = form.cleaned_data['container']
118-
subdir = form.cleaned_data['subdir']
119-
try:
120-
http_conn = (urlparse(storage_url),
121-
client.HTTPConnection(storage_url, insecure=settings.SWIFT_SSL_INSECURE))
122-
meta, objects = client.get_container(storage_url, auth_token,
123-
container, delimiter='/',
124-
prefix=subdir,
125-
http_conn=http_conn)
126-
subdirs = list()
127-
folder_objects = list()
128-
for folder_object in objects:
129-
if 'subdir' in folder_object.keys():
130-
subdirs.append(folder_object['subdir'])
131-
else:
132-
folder_objects.append(folder_object)
133-
134-
account = storage_url.split('/')[-1]
135-
if subdir:
136-
path_elements = subdir.split('/')
137-
else:
138-
path_elements = []
139-
140-
read_acl = meta.get('x-container-read', '').split(',')
141-
public = False
142-
required_acl = ['.r:*', '.rlistings']
143-
if [x for x in read_acl if x in required_acl]:
144-
public = True
145-
146-
return render(request, "container.html", {
147-
'container': container,
148-
'subdirs': subdirs,
149-
'folder_objects': folder_objects,
150-
'account': account,
151-
'public': public,
152-
'session': request.session,
153-
'path_elements': path_elements,
154-
})
112+
if 'container' not in request.GET.keys():
113+
return redirect(containers)
114+
container = request.GET['container']
115+
subdir = ''
116+
if 'subdir' in request.GET.keys():
117+
subdir = request.GET['subdir']
155118

156-
except client.ClientException:
157-
messages.add_message(request, messages.ERROR, "Access denied.")
158-
return redirect(containers)
119+
try:
120+
http_conn = (urlparse(storage_url),
121+
client.HTTPConnection(storage_url, insecure=settings.SWIFT_SSL_INSECURE))
122+
meta, objects = client.get_container(storage_url, auth_token,
123+
container, delimiter='/',
124+
prefix=subdir,
125+
http_conn=http_conn)
126+
subdirs = list()
127+
folder_objects = list()
128+
for folder_object in objects:
129+
if 'subdir' in folder_object.keys():
130+
subdirs.append(folder_object['subdir'])
131+
else:
132+
folder_objects.append(folder_object)
133+
134+
account = storage_url.split('/')[-1]
135+
if subdir:
136+
path_elements = subdir.split('/')
159137
else:
160-
logger.info('Invalid form data')
161-
logger.info(form.cleaned_data)
162-
return redirect(containers)
163-
else:
138+
path_elements = []
139+
140+
read_acl = meta.get('x-container-read', '').split(',')
141+
public = False
142+
required_acl = ['.r:*', '.rlistings']
143+
if [x for x in read_acl if x in required_acl]:
144+
public = True
145+
146+
return render(request, "container.html", {
147+
'container': container,
148+
'subdirs': subdirs,
149+
'folder_objects': folder_objects,
150+
'account': account,
151+
'public': public,
152+
'session': request.session,
153+
'path_elements': path_elements,
154+
})
155+
156+
except client.ClientException:
157+
messages.add_message(request, messages.ERROR, "Access denied.")
164158
return redirect(containers)
165159

166160
@login_required

0 commit comments

Comments
 (0)