Mercurial > hg > bts-webui
changeset 130:8ea1bce228b5 draft
starring: implement package removal
author | diegoe-guest |
---|---|
date | Thu, 06 Aug 2009 23:00:07 +0000 |
parents | c56388a2e486 |
children | 2aa6bf2f3f2e |
files | bts_webui/amancay/ajax.py bts_webui/amancay/urls.py |
diffstat | 2 files changed, 24 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/bts_webui/amancay/ajax.py +++ b/bts_webui/amancay/ajax.py @@ -12,11 +12,29 @@ packages = user.package_set.filter(package_name=package_name) if not packages: user.package_set.create(package_name=package_name) + return HttpResponse(status=200) else: packages = request.session.get('packages', []) - for package in packages: - if package == package_name: - return - request.session['packages'].append(package_name) + if package_name in packages: + return HttpResponse(status=500) + else: + request.session['packages'].append(package_name) + return HttpResponse(status=200) - return HttpResponse(status=200) +def remove_package(request): + """ + Remove a package from the watched list. + """ + user = request.user + package_name = request.GET['id'] + + if user.is_authenticated(): + packages = user.package_set.filter(package_name=package_name)[:1] + if packages: + packages[0].delete() + return HttpResponse(status=200) + else: + packages = request.session.get('packages', []) + if package_name in packages: + request.session['packages'].remove(package_name) + return HttpResponse(status=500)
--- a/bts_webui/amancay/urls.py +++ b/bts_webui/amancay/urls.py @@ -23,6 +23,7 @@ # Small pieces (r'^ajax/package/add/', 'bts_webui.amancay.ajax.add_package',), + (r'^ajax/package/remove/', 'bts_webui.amancay.ajax.remove_package',), # Account Settings # (r'^account_settings', 'bts_webui.amancay.views.account_settings',),