Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Refactores decribe, describe_license and describe_pack views
  • Loading branch information
ffont committed Jul 31, 2015
1 parent b82934f commit 2f9c3fd
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 86 deletions.
5 changes: 3 additions & 2 deletions accounts/templatetags/filefunctions.py
Expand Up @@ -23,5 +23,6 @@
register = template.Library()

@register.inclusion_tag('accounts/recursive_file.html')
def show_file(file_structure):
return {'file': file_structure}
def show_file(file_structure, non_recursive=False):
print non_recursive

This comment has been minimized.

Copy link
@alastair

alastair Aug 4, 2015

Member

added by error?

return {'file': file_structure, 'non_recursive': non_recursive}
57 changes: 25 additions & 32 deletions accounts/views.py
Expand Up @@ -356,48 +356,38 @@ def handle_uploaded_image(profile, f):

@login_required
def describe(request):

# Tag recommendation research code
ask_for_interface = settings.ENABLE_TAG_RECOMMENDATION_INTERFACE_EXPERIMENT
is_ie = False
if request.META.has_key('HTTP_USER_AGENT'):
user_agent = request.META['HTTP_USER_AGENT'].lower()
is_ie = ('trident' in user_agent) or ('msie' in user_agent)

file_structure, files = generate_tree(os.path.join(settings.UPLOADS_PATH, str(request.user.id)))
file_structure.name = 'Your uploaded files'
file_structure.name = ''

if request.method == 'POST':
form = FileChoiceForm(files, request.POST)

# Tag recommendation research code
request.session['use_alternative_interface'] = False
if ask_for_interface:
if request.POST.get('participate_in_experiment', 'no') == 'yes':
request.session['use_alternative_interface'] = True

if form.is_valid():
if "delete" in request.POST: # If delete button is pressed
if "delete" in request.POST:
filenames = [files[x].name for x in form.cleaned_data["files"]]
return render_to_response('accounts/confirm_delete_undescribed_files.html', locals(), context_instance=RequestContext(request))
elif "delete_confirm" in request.POST: # If confirmation delete button is pressed
for file in form.cleaned_data["files"]:
os.remove(files[file].full_path)
tvars = {'form': form, 'filenames': filenames}
return render(request, 'accounts/confirm_delete_undescribed_files.html', tvars)
elif "delete_confirm" in request.POST:
for f in form.cleaned_data["files"]:
os.remove(files[f].full_path)
return HttpResponseRedirect(reverse('accounts-describe'))
elif "describe" in request.POST: # If describe button is pressed
# If only one file is choosen, go straight to the last step of the describe process, otherwise go to license selection step
if len(form.cleaned_data["files"]) > 1 :
request.session['describe_sounds'] = [files[x] for x in form.cleaned_data["files"]]
elif "describe" in request.POST:
request.session['describe_sounds'] = [files[x] for x in form.cleaned_data["files"]]

# If only one file is choosen, go straight to the last step of the describe process,
# otherwise go to license selection step
if len(request.session['describe_sounds']) > 1:
return HttpResponseRedirect(reverse('accounts-describe-license'))
else :
request.session['describe_sounds'] = [files[x] for x in form.cleaned_data["files"]]
else:
return HttpResponseRedirect(reverse('accounts-describe-sounds'))
else:
form = FileChoiceForm(files) # Reset form
return render_to_response('accounts/describe.html', locals(), context_instance=RequestContext(request))
form = FileChoiceForm(files)
tvars = {'form': form, 'file_structure': file_structure}
return render(request, 'accounts/describe.html', tvars)
else:
form = FileChoiceForm(files)
return render_to_response('accounts/describe.html', locals(), context_instance=RequestContext(request))
tvars = {'form': form, 'file_structure': file_structure}
return render(request, 'accounts/describe.html', tvars)


@login_required
def describe_license(request):
Expand All @@ -408,7 +398,9 @@ def describe_license(request):
return HttpResponseRedirect(reverse('accounts-describe-pack'))
else:
form = NewLicenseForm({'license': License.objects.get(name='Attribution')})
return render_to_response('accounts/describe_license.html', locals(), context_instance=RequestContext(request))
tvars = {'form': form}
return render(request, 'accounts/describe_license.html', tvars)


@login_required
def describe_pack(request):
Expand All @@ -427,7 +419,8 @@ def describe_pack(request):
return HttpResponseRedirect(reverse('accounts-describe-sounds'))
else:
form = PackForm(packs, prefix="pack")
return render_to_response('accounts/describe_pack.html', locals(), context_instance=RequestContext(request))
tvars = {'form': form}
return render(request, 'accounts/describe_pack.html', tvars)


@login_required
Expand Down
2 changes: 0 additions & 2 deletions freesound/settings.py
Expand Up @@ -327,8 +327,6 @@
# files when we do a deploy (the url changes)
LAST_RESTART_DATE = datetime.datetime.now().strftime("%d%m")

ENABLE_TAG_RECOMMENDATION_INTERFACE_EXPERIMENT = False

# Followers notifications
MAX_EMAILS_PER_COMMAND_RUN = 1000
NOTIFICATION_TIMEDELTA_PERIOD = datetime.timedelta(days=7)
Expand Down
41 changes: 3 additions & 38 deletions templates/accounts/describe.html
Expand Up @@ -25,17 +25,6 @@
option.selected = false;
}

{% if ask_for_interface %}
function show_popup(){
$("#ask_for_interface").show();
}

function submit(form, value){
$("#participate_in_experiment").val(value);
form.submit();
}
{% endif %}

</script>
{% endblock %}

Expand All @@ -48,10 +37,10 @@ <h3>Pick files</h3>
<br> You can also delete files by selecting them and pressing the "delete selected files" button.
<div id="content">
<div class="content_box">
<h3>&nbsp;</h3>
<h3>Your uploaded files</h3>
<p>
<ul id="root_file" class="upload">
{% show_file file_structure %}
{% show_file file_structure 1 %}
</ul>
</p>
</div>
Expand All @@ -64,31 +53,7 @@ <h3>Actions</h3>
<div style="display:none">
{{form.as_p}}
</div>
{% if ask_for_interface %}
<input class="describe_page_action_button" type="button" value="describe selected files" onclick="show_popup()">
<div id="ask_for_interface" style="display:none;margin-top:10px;margin-left:10px;padding: 16px 18px;border-left: 2px solid #eee;background: #fafafa;">
<p>

In order to improve and facilitate the sound tagging process, we are experimenting with a new
interface for tagging your audio files. Do you want to use this experimental interface to describe
the selected sounds?
</p>
<p>
<input type="radio" name="participate_in_experiment" value="yes" {% if is_ie %}disabled="disabled"{% endif %} /> Yes&nbsp;&nbsp;&nbsp;
<input type="radio" name="participate_in_experiment" checked="checked" value="no"/> No

<input type="submit" value="continue" name="describe" style="margin-left:90px">
</p>
{% if is_ie %}
<p><span style="font-size:90%;">
(only works on Chrome, Safari and Firefox web browsers)
</span></p>
{% endif %}

</div>
{% else %}
<input class="describe_page_action_button" type="submit" value="describe selected files" name="describe">
{% endif %}
<input class="describe_page_action_button" type="submit" value="describe selected files" name="describe">
<br><input class="describe_page_action_button" type="submit" value="delete selected files" name="delete">
</form>
</p>
Expand Down
36 changes: 24 additions & 12 deletions templates/accounts/recursive_file.html
@@ -1,16 +1,28 @@
{% load filefunctions %}
{% if file.is_dir %}
<li class="dirnode">{{file.name}} (<a id="select_all" href="#" onclick="select_ul(this)">select all</a>)
<ul>
{% if not non_recursive %}
{% if file.is_dir %}
<li class="dirnode">{{file.name}} (<a id="select_all" href="#" onclick="select_ul(this)">select all</a>)
<ul>
{% for child in file.children %}
{% show_file child %}
{% endfor %}
</ul>
</li>
{% else %}
<li class="filenode">
<span class="filename">
<input class="filecheckbox" type="checkbox" name="{{file.id}}" onchange="checkboxChange(this);"><strong>{{file.name}}</strong>
</span>
</li>
{% endif %}
{% else %}
<ul> <a id="select_all" href="#" onclick="select_ul(this)">select all</a>
{% for child in file.children %}
{% show_file child %}
<li class="filenode">
<span class="filename">
<input class="filecheckbox" type="checkbox" name="{{child.id}}" onchange="checkboxChange(this);"><strong>{{child.name}}</strong>
</span>
</li>
{% endfor %}
</ul>
</li>
{% else %}
<li class="filenode">
<span class="filename">
<input class="filecheckbox" type="checkbox" name="{{file.id}}" onchange="checkboxChange(this);"><strong>{{file.name}}</strong>
</span>
</li>
{% endif %}
{% endif %}

0 comments on commit 2f9c3fd

Please sign in to comment.