Mercurial > hg > bts-webui
view bts_webui/amancay/toolbox.py @ 69:47474c0d98a5 draft
bts_queries: PEP 8, style nitpicks
- CapWords-ify classes, PEP 8
- bts_queries: spaces after ','
author | diegoe-guest |
---|---|
date | Wed, 03 Jun 2009 19:01:18 +0000 |
parents | 23ce17c621f7 |
children | 20a0f36c4066 |
line wrap: on
line source
import datetime # Needed to get_template, prepare context and output Response from django.template import Context, loader from django.http import HttpResponse, HttpResponseRedirect # Shortcut for rendering a response from django.shortcuts import get_object_or_404, render_to_response # Model clases from django.contrib.auth.models import User from bts_webui.amancay.models import Package, Bug, SubmitterEmail, MaintainerEmail, UserEmail # Needed for AJAX from django.utils import simplejson def render_toolbox(request): toolbox = get_toolbox(request) return render_to_response('toolbox.html', {'toolbox': toolbox} ) def get_toolbox(request): # Initialization user = request.user toolbox = {} # Fill the info according to the type of toolbox needed if (request.path.find("submitted_bugs") != -1): toolbox["title"] = "Submitter emails" toolbox["item_type"] = "submitter_email" if (user.is_authenticated()): email_list = request.user.submitteremail_set.all() toolbox["item_list"] = [ e.address for e in email_list] else: toolbox["item_list"] = request.session.get('submitter_emails') # Received bugs elif (request.path.find("received_bugs") != -1): toolbox["title"] = "Maintainer emails" toolbox["item_type"] = "maintainer_email" if (user.is_authenticated()): email_list = request.user.maintaineremail_set.all() toolbox["item_list"] = [ e.address for e in email_list] else: toolbox["item_list"] = request.session.get('maintainer_emails') # Selected Packages elif (request.path.find("package_bugs") != -1): toolbox["title"] = "Selected Packages" toolbox["item_type"] = "package" if (user.is_authenticated()): package_list = request.user.package_set.all() toolbox["item_list"] = [ p.package_name for p in package_list] else: toolbox["item_list"] = request.session.get('packages') # Selected bugs elif (request.path.find("selected_bugs") != -1): toolbox["title"] = "Selected Bugs" toolbox["item_type"] = "bug" if (user.is_authenticated()): bug_list = request.user.bug_set.all() toolbox["item_list"] = [b.number for b in bug_list] else: toolbox["item_list"] = request.session.get('bugs') # Tagged bugs elif (request.path.find("tagged_bugs") != -1): toolbox["title"] = "User emails" toolbox["item_type"] = "user_email" if (user.is_authenticated()): email_list = request.user.useremail_set.all() toolbox["item_list"] = [ e.address for e in email_list] else: toolbox["item_list"] = request.session.get('user_emails') # Done return toolbox def add_package(request): user = request.user package_name = request.POST['package_name'] if (user.is_authenticated()): packages = user.package_set.filter(package_name=package_name) if (len(packages) == 0): user.package_set.create(package_name=package_name) else: packages = request.session.get('packages') if (packages == None): packages = request.session['packages'] = [] for package in packages: if (package == package_name): return request.session['packages'].append(package_name) def remove_packages(request): user = request.user package_selected = request.POST.getlist("package_select") if (user.is_authenticated()): for package_name in package_selected: packages = user.package_set.filter(package_name=package_name) if (len(packages) != 0): packages[0].delete() else: packages = request.session.get('packages') if (packages == None): packages = request.session['packages'] = [] else: for package_name in package_selected: for package in packages: if (package == package_name): request.session['packages'].remove(package_name) def add_bug(request): user = request.user bug_number = request.POST['bug_number'] if (user.is_authenticated()): bugs = user.bug_set.filter(number=bug_number) if (len(bugs) == 0): user.bug_set.create(number=bug_number) else: bugs = request.session.get('bugs') if (bugs == None): bugs = request.session['bugs'] = [] for bug in bugs: if (bug == bug_number): return request.session['bugs'].append(bug_number) def remove_bugs(request): user = request.user bug_selected = request.POST.getlist("bug_select") if (user.is_authenticated()): for number in bug_selected: bugs = user.bug_set.filter(number=number) if (len(bugs) != 0): bugs[0].delete() else: bugs = request.session.get('bugs') if (bugs == None): bugs = request.session['bugs'] = [] else: for bug_number in bug_selected: for bug in bugs: if (bug == bug_number): request.session['bugs'].remove(bug_number) # Package page def package(request, package_name): user = request.user queries = SoapQueries() bugs = queries.get_packages_bugs(package_name) bugs.sort(reverse=True) bug_list = queries.get_bugs_status(bugs) # Check if it's AJAX or HTML if (request.GET.has_key('xhr')): return HttpResponse( simplejson.dumps({"package": package_name, "bug_list": bug_list}), mimetype='application/javascript' ) else: return render_to_response('package.html', {'package': package_name, 'bug_list': bug_list, 'current_user': user} )