From patchwork Wed Jul 13 13:29:13 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zygmunt Krynicki X-Patchwork-Id: 2678 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 4685F24259 for ; Wed, 13 Jul 2011 13:29:18 +0000 (UTC) Received: from mail-qy0-f173.google.com (mail-qy0-f173.google.com [209.85.216.173]) by fiordland.canonical.com (Postfix) with ESMTP id C2E3CA18558 for ; Wed, 13 Jul 2011 13:29:17 +0000 (UTC) Received: by qyk10 with SMTP id 10so344133qyk.11 for ; Wed, 13 Jul 2011 06:29:17 -0700 (PDT) Received: by 10.229.68.200 with SMTP id w8mr1026474qci.114.1310563755319; Wed, 13 Jul 2011 06:29:15 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.229.217.78 with SMTP id hl14cs21636qcb; Wed, 13 Jul 2011 06:29:14 -0700 (PDT) Received: by 10.216.68.203 with SMTP id l53mr959503wed.84.1310563754305; Wed, 13 Jul 2011 06:29:14 -0700 (PDT) Received: from adelie.canonical.com (adelie.canonical.com [91.189.90.139]) by mx.google.com with ESMTP id e32si30202303wes.5.2011.07.13.06.29.13; Wed, 13 Jul 2011 06:29:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.139 as permitted sender) client-ip=91.189.90.139; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.139 as permitted sender) smtp.mail=bounces@canonical.com Received: from loganberry.canonical.com ([91.189.90.37]) by adelie.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1QgzV3-00060z-Kd for ; Wed, 13 Jul 2011 13:29:13 +0000 Received: from loganberry.canonical.com (localhost [127.0.0.1]) by loganberry.canonical.com (Postfix) with ESMTP id 95A8C2E84F6 for ; Wed, 13 Jul 2011 13:29:13 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-dashboard X-Launchpad-Branch: ~linaro-validation/lava-dashboard/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 243 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-dashboard/trunk] Rev 243: Merge 0.6b2 changes Message-Id: <20110713132913.5465.9754.launchpad@loganberry.canonical.com> Date: Wed, 13 Jul 2011 13:29:13 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="13405"; Instance="initZopeless config overlay" X-Launchpad-Hash: 398ab1df88ba755bf4d36a2fbc6b01325444adeb Merge authors: Zygmunt Krynicki (zkrynicki) Related merge proposals: https://code.launchpad.net/~zkrynicki/lava-dashboard/0.6b2/+merge/67833 proposed by: Zygmunt Krynicki (zkrynicki) ------------------------------------------------------------ revno: 243 [merge] committer: Zygmunt Krynicki branch nick: lava-dashboard timestamp: Wed 2011-07-13 15:27:33 +0200 message: Merge 0.6b2 changes removed: dashboard_app/static/css/demo_table_jui.css dashboard_app/tests/views/xml_rpc_handler.py modified: dashboard_app/__init__.py dashboard_app/models.py dashboard_app/templates/dashboard_app/_extrahead.html dashboard_app/templates/dashboard_app/api.html dashboard_app/templates/dashboard_app/bundle_detail.html dashboard_app/templates/dashboard_app/report_detail.html dashboard_app/templates/dashboard_app/test_run_hardware_context.html dashboard_app/tests/__init__.py dashboard_app/tests/other/csrf.py dashboard_app/urls.py dashboard_app/views.py setup.py --- lp:lava-dashboard https://code.launchpad.net/~linaro-validation/lava-dashboard/trunk You are subscribed to branch lp:lava-dashboard. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-dashboard/trunk/+edit-subscription === modified file 'dashboard_app/__init__.py' --- dashboard_app/__init__.py 2011-07-12 02:39:22 +0000 +++ dashboard_app/__init__.py 2011-07-13 11:12:37 +0000 @@ -20,4 +20,4 @@ Dashboard Application (package) """ -__version__ = (0, 6, 0, "beta", 1) +__version__ = (0, 6, 0, "beta", 2) === modified file 'dashboard_app/models.py' --- dashboard_app/models.py 2011-07-12 03:00:26 +0000 +++ dashboard_app/models.py 2011-07-12 14:38:26 +0000 @@ -1026,8 +1026,10 @@ return Template(self._get_raw_html()) def _get_html_template_context(self): + from django.conf import settings return Context({ - "API_URL": reverse("dashboard_app.views.dashboard_xml_rpc_handler") + "API_URL": reverse("dashboard_app.views.dashboard_xml_rpc_handler"), + "STATIC_URL": settings.STATIC_URL }) def get_html(self): === removed file 'dashboard_app/static/css/demo_table_jui.css' --- dashboard_app/static/css/demo_table_jui.css 2011-07-08 04:20:37 +0000 +++ dashboard_app/static/css/demo_table_jui.css 1970-01-01 00:00:00 +0000 @@ -1,516 +0,0 @@ -/* - * File: demo_table_jui.css - * CVS: $Id$ - * Description: CSS descriptions for DataTables demo pages - * Author: Allan Jardine - * Created: Tue May 12 06:47:22 BST 2009 - * Modified: $Date$ by $Author$ - * Language: CSS - * Project: DataTables - * - * Copyright 2009 Allan Jardine. All Rights Reserved. - * - * *************************************************************************** - * DESCRIPTION - * - * The styles given here are suitable for the demos that are used with the standard DataTables - * distribution (see www.datatables.net). You will most likely wish to modify these styles to - * meet the layout requirements of your site. - * - * Common issues: - * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is - * no conflict between the two pagination types. If you want to use full_numbers pagination - * ensure that you either have "example_alt_pagination" as a body class name, or better yet, - * modify that selector. - * Note that the path used for Images is relative. All images are by default located in - * ../images/ - relative to this CSS file. - */ - - -/* - * jQuery UI specific styling - */ - -.paging_two_button .ui-button { - float: left; - cursor: pointer; - * cursor: hand; -} - -.paging_full_numbers .ui-button { - padding: 2px 6px; - margin: 0; - cursor: pointer; - * cursor: hand; -} - -.dataTables_paginate .ui-button { - margin-right: -0.1em !important; -} - -.paging_full_numbers { - width: 350px !important; -} - -.dataTables_wrapper .ui-toolbar { - padding: 5px; -} - -.dataTables_paginate { - width: auto; -} - -.dataTables_info { - padding-top: 3px; -} - -table.display thead th { - padding: 3px 0px 3px 10px; - cursor: pointer; - * cursor: hand; -} - -div.dataTables_wrapper .ui-widget-header { - font-weight: normal; -} - - -/* - * Sort arrow icon positioning - */ -table.display thead th div.DataTables_sort_wrapper { - position: relative; - padding-right: 20px; - padding-right: 20px; -} - -table.display thead th div.DataTables_sort_wrapper span { - position: absolute; - top: 50%; - margin-top: -8px; - right: 0; -} - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Everything below this line is the same as demo_table.css. This file is - * required for 'cleanliness' of the markup - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables features - */ - -.dataTables_wrapper { - position: relative; - min-height: 302px; - _height: 302px; - clear: both; -} - -.dataTables_processing { - position: absolute; - top: 0px; - left: 50%; - width: 250px; - margin-left: -125px; - border: 1px solid #ddd; - text-align: center; - color: #999; - font-size: 11px; - padding: 2px 0; -} - -.dataTables_length { - width: 40%; - float: left; -} - -.dataTables_filter { - width: 50%; - float: right; - text-align: right; -} - -.dataTables_info { - width: 50%; - float: left; -} - -.dataTables_paginate { - float: right; - text-align: right; -} - -/* Pagination nested */ -.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { - height: 19px; - width: 19px; - margin-left: 3px; - float: left; -} - -.paginate_disabled_previous { - background-image: url('../images/back_disabled.jpg'); -} - -.paginate_enabled_previous { - background-image: url('../images/back_enabled.jpg'); -} - -.paginate_disabled_next { - background-image: url('../images/forward_disabled.jpg'); -} - -.paginate_enabled_next { - background-image: url('../images/forward_enabled.jpg'); -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables display - */ -table.display { - margin: 0 auto; - width: 100%; - clear: both; - border-collapse: collapse; -} - -table.display tfoot th { - padding: 3px 0px 3px 10px; - font-weight: bold; - font-weight: normal; -} - -table.display tr.heading2 td { - border-bottom: 1px solid #aaa; -} - -table.display td { - padding: 3px 10px; -} - -table.display td.center { - text-align: center; -} - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables sorting - */ - -.sorting_asc { - background: url('../images/sort_asc.png') no-repeat center right; -} - -.sorting_desc { - background: url('../images/sort_desc.png') no-repeat center right; -} - -.sorting { - background: url('../images/sort_both.png') no-repeat center right; -} - -.sorting_asc_disabled { - background: url('../images/sort_asc_disabled.png') no-repeat center right; -} - -.sorting_desc_disabled { - background: url('../images/sort_desc_disabled.png') no-repeat center right; -} - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables row classes - */ -table.display tr.odd.gradeA { - background-color: #ddffdd; -} - -table.display tr.even.gradeA { - background-color: #eeffee; -} - - - - -table.display tr.odd.gradeA { - background-color: #ddffdd; -} - -table.display tr.even.gradeA { - background-color: #eeffee; -} - -table.display tr.odd.gradeC { - background-color: #ddddff; -} - -table.display tr.even.gradeC { - background-color: #eeeeff; -} - -table.display tr.odd.gradeX { - background-color: #ffdddd; -} - -table.display tr.even.gradeX { - background-color: #ffeeee; -} - -table.display tr.odd.gradeU { - background-color: #ddd; -} - -table.display tr.even.gradeU { - background-color: #eee; -} - - -tr.odd { - background-color: #E2E4FF; -} - -tr.even { - background-color: white; -} - - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Misc - */ -.dataTables_scroll { - clear: both; -} - -.top, .bottom { - padding: 15px; - background-color: #F5F5F5; - border: 1px solid #CCCCCC; -} - -.top .dataTables_info { - float: none; -} - -.clear { - clear: both; -} - -.dataTables_empty { - text-align: center; -} - -tfoot input { - margin: 0.5em 0; - width: 100%; - color: #444; -} - -tfoot input.search_init { - color: #999; -} - -td.group { - background-color: #d1cfd0; - border-bottom: 2px solid #A19B9E; - border-top: 2px solid #A19B9E; -} - -td.details { - background-color: #d1cfd0; - border: 2px solid #A19B9E; -} - - -.example_alt_pagination div.dataTables_info { - width: 40%; -} - -.paging_full_numbers span.paginate_button, - .paging_full_numbers span.paginate_active { - border: 1px solid #aaa; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - padding: 2px 5px; - margin: 0 3px; - cursor: pointer; - *cursor: hand; -} - -.paging_full_numbers span.paginate_button { - background-color: #ddd; -} - -.paging_full_numbers span.paginate_button:hover { - background-color: #ccc; -} - -.paging_full_numbers span.paginate_active { - background-color: #99B3FF; -} - -table.display tr.even.row_selected td { - background-color: #B0BED9; -} - -table.display tr.odd.row_selected td { - background-color: #9FAFD1; -} - - -/* - * Sorting classes for columns - */ -/* For the standard odd/even */ -tr.odd td.sorting_1 { - background-color: #D3D6FF; -} - -tr.odd td.sorting_2 { - background-color: #DADCFF; -} - -tr.odd td.sorting_3 { - background-color: #E0E2FF; -} - -tr.even td.sorting_1 { - background-color: #EAEBFF; -} - -tr.even td.sorting_2 { - background-color: #F2F3FF; -} - -tr.even td.sorting_3 { - background-color: #F9F9FF; -} - - -/* For the Conditional-CSS grading rows */ -/* - Colour calculations (based off the main row colours) - Level 1: - dd > c4 - ee > d5 - Level 2: - dd > d1 - ee > e2 - */ -tr.odd.gradeA td.sorting_1 { - background-color: #c4ffc4; -} - -tr.odd.gradeA td.sorting_2 { - background-color: #d1ffd1; -} - -tr.odd.gradeA td.sorting_3 { - background-color: #d1ffd1; -} - -tr.even.gradeA td.sorting_1 { - background-color: #d5ffd5; -} - -tr.even.gradeA td.sorting_2 { - background-color: #e2ffe2; -} - -tr.even.gradeA td.sorting_3 { - background-color: #e2ffe2; -} - -tr.odd.gradeC td.sorting_1 { - background-color: #c4c4ff; -} - -tr.odd.gradeC td.sorting_2 { - background-color: #d1d1ff; -} - -tr.odd.gradeC td.sorting_3 { - background-color: #d1d1ff; -} - -tr.even.gradeC td.sorting_1 { - background-color: #d5d5ff; -} - -tr.even.gradeC td.sorting_2 { - background-color: #e2e2ff; -} - -tr.even.gradeC td.sorting_3 { - background-color: #e2e2ff; -} - -tr.odd.gradeX td.sorting_1 { - background-color: #ffc4c4; -} - -tr.odd.gradeX td.sorting_2 { - background-color: #ffd1d1; -} - -tr.odd.gradeX td.sorting_3 { - background-color: #ffd1d1; -} - -tr.even.gradeX td.sorting_1 { - background-color: #ffd5d5; -} - -tr.even.gradeX td.sorting_2 { - background-color: #ffe2e2; -} - -tr.even.gradeX td.sorting_3 { - background-color: #ffe2e2; -} - -tr.odd.gradeU td.sorting_1 { - background-color: #c4c4c4; -} - -tr.odd.gradeU td.sorting_2 { - background-color: #d1d1d1; -} - -tr.odd.gradeU td.sorting_3 { - background-color: #d1d1d1; -} - -tr.even.gradeU td.sorting_1 { - background-color: #d5d5d5; -} - -tr.even.gradeU td.sorting_2 { - background-color: #e2e2e2; -} - -tr.even.gradeU td.sorting_3 { - background-color: #e2e2e2; -} - -/* - * Row highlighting example - */ -.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { - background-color: #ECFFB3; -} - -.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { - background-color: #E6FF99; -} === modified file 'dashboard_app/templates/dashboard_app/_extrahead.html' --- dashboard_app/templates/dashboard_app/_extrahead.html 2011-07-12 02:34:12 +0000 +++ dashboard_app/templates/dashboard_app/_extrahead.html 2011-07-13 11:07:18 +0000 @@ -1,3 +1,3 @@ - - - + + + === modified file 'dashboard_app/templates/dashboard_app/api.html' --- dashboard_app/templates/dashboard_app/api.html 2011-07-08 04:19:47 +0000 +++ dashboard_app/templates/dashboard_app/api.html 2011-07-13 12:29:53 +0000 @@ -4,43 +4,27 @@ {% block title %} -{{ block.super }} | {% trans "XML-RPC API" %} +{{ block.super }} | {% trans "Dashboard" %} | {% trans "API Help (deprecated)" %} {% endblock %} {% block extrahead %} {{ block.super }} - - - + + + {% endblock %} {% block breadcrumbs %} -
  • {% trans "XML-RPC API" %}
  • +
  • {% trans "Dashboard" %}
  • +
  • {% trans "API Help (deprecated)" %}
  • {% endblock %} {% block content %} -

    About XML-RPC API

    -

    This URL is an XML-RPC server. You can interact with it using any XML-RPC -client. For example, in python you can do this:

    -
    -import xmlrpclib
    -server = xmlrpclib.ServerProxy("{{ dashboard_url }}{% url dashboard_app.views.dashboard_xml_rpc_handler %}")
    -print server.version()
    -
    -

    The rest of this page is an automatically generated documentation of the -available functions.

    - -

    Available functions

    -
    - {% for method in methods %} -

    {{ method.name }}

    -
    {{ method.help|restructuredtext }}
    - {% endfor %} -
    - +

    Depracation notice

    +

    Dashboard has a separate, deprecated, XML-RPC handler. You should refrain +from using it. Instead please see the LAVA Server API Help which provides API services to all services

    {% endblock %} === modified file 'dashboard_app/templates/dashboard_app/bundle_detail.html' --- dashboard_app/templates/dashboard_app/bundle_detail.html 2011-07-12 02:34:12 +0000 +++ dashboard_app/templates/dashboard_app/bundle_detail.html 2011-07-13 11:07:18 +0000 @@ -6,7 +6,7 @@ {% block extrahead %} {{ block.super }} - + {% endblock %} === modified file 'dashboard_app/templates/dashboard_app/report_detail.html' --- dashboard_app/templates/dashboard_app/report_detail.html 2011-07-12 02:34:12 +0000 +++ dashboard_app/templates/dashboard_app/report_detail.html 2011-07-13 11:07:18 +0000 @@ -6,11 +6,11 @@ {% block extrahead %} {{ block.super }} - - - - - + + + + + {% endblock %} === modified file 'dashboard_app/templates/dashboard_app/test_run_hardware_context.html' --- dashboard_app/templates/dashboard_app/test_run_hardware_context.html 2011-07-12 02:34:12 +0000 +++ dashboard_app/templates/dashboard_app/test_run_hardware_context.html 2011-07-13 11:07:18 +0000 @@ -38,7 +38,7 @@ /* Insert a 'details' column to the table */ var nCloneTh = document.createElement('th'); var nCloneTd = document.createElement('td'); - nCloneTd.innerHTML = ''; + nCloneTd.innerHTML = ''; nCloneTd.className = "center"; $('#hardware_devices thead tr').each( function () { @@ -66,11 +66,11 @@ var nTr = this.parentNode.parentNode; if (this.src.match('details_close')) { /* This row is already open - close it */ - this.src = "{{ STATIC_URL }}images/details_open.png"; + this.src = "{{ STATIC_URL }}dashboard_app/images/details_open.png"; oTable.fnClose(nTr); } else { /* Open this row */ - this.src = "{{ STATIC_URL }}images/details_close.png"; + this.src = "{{ STATIC_URL }}dashboard_app/images/details_close.png"; oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'details'); } }); === modified file 'dashboard_app/tests/__init__.py' --- dashboard_app/tests/__init__.py 2011-05-30 16:11:30 +0000 +++ dashboard_app/tests/__init__.py 2011-07-13 11:24:08 +0000 @@ -29,7 +29,6 @@ 'views.bundle_stream_list_view', 'views.test_run_detail_view', 'views.test_run_list_view', - 'views.xml_rpc_handler', ] def load_tests_from_submodules(_locals): === modified file 'dashboard_app/tests/other/csrf.py' --- dashboard_app/tests/other/csrf.py 2011-03-14 15:42:56 +0000 +++ dashboard_app/tests/other/csrf.py 2011-07-13 12:48:21 +0000 @@ -29,7 +29,6 @@ from django.template import Template, RequestContext from dashboard_app.tests.utils import CSRFTestCase -from dashboard_app.views import dashboard_xml_rpc_handler from dashboard_app import urls @@ -61,7 +60,7 @@ def test_csrf_not_protecting_xml_rpc_views(self): """call version and check that we didn't get 403""" - endpoint_path = reverse(dashboard_xml_rpc_handler) + endpoint_path = reverse('dashboard_app.views.dashboard_xml_rpc_handler') request_body = xmlrpclib.dumps((), methodname="version") response = self.client.post(endpoint_path, request_body, "text/xml") self.assertContains(response, "", status_code=200) === removed file 'dashboard_app/tests/views/xml_rpc_handler.py' --- dashboard_app/tests/views/xml_rpc_handler.py 2011-05-30 16:49:46 +0000 +++ dashboard_app/tests/views/xml_rpc_handler.py 1970-01-01 00:00:00 +0000 @@ -1,34 +0,0 @@ -# Copyright (C) 2010 Linaro Limited -# -# Author: Zygmunt Krynicki -# -# This file is part of Launch Control. -# -# Launch Control is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License version 3 -# as published by the Free Software Foundation -# -# Launch Control is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with Launch Control. If not, see . - -""" -Unit tests for dashboard_app.views.dashboard_xml_rpc_handler -""" - -from django.core.urlresolvers import reverse -from django.template import RequestContext -from django_testscenarios.ubertest import TestCase - - -class XMLRPCViewsTests(TestCase): - - def test_request_context_was_used(self): - url = reverse("dashboard_app.views.dashboard_xml_rpc_handler") - response = self.client.get(url) - # This is ugly because response.context is a list - self.assertTrue(any((isinstance(context, RequestContext) for context in response.context))) === modified file 'dashboard_app/urls.py' --- dashboard_app/urls.py 2011-07-12 03:00:26 +0000 +++ dashboard_app/urls.py 2011-07-13 12:29:53 +0000 @@ -21,6 +21,8 @@ """ from django.conf.urls.defaults import * +from dashboard_app.xmlrpc import legacy_mapper +import linaro_django_xmlrpc.views urlpatterns = patterns( 'dashboard_app.views', @@ -33,7 +35,16 @@ url(r'^reports/(?P[a-zA-Z0-9-_]+)/$', 'report_detail'), url(r'^tests/$', 'test_list'), url(r'^tests/(?P[^/]+)/$', 'test_detail'), - url(r'^xml-rpc/', 'dashboard_xml_rpc_handler'), + url(r'^xml-rpc/$', linaro_django_xmlrpc.views.handler, + name='dashboard_app.views.dashboard_xml_rpc_handler', + kwargs={ + 'mapper': legacy_mapper, + 'help_view': 'dashboard_app.views.dashboard_xml_rpc_help'}), + url(r'^xml-rpc/help/$', linaro_django_xmlrpc.views.help, + name='dashboard_app.views.dashboard_xml_rpc_help', + kwargs={ + 'mapper': legacy_mapper, + 'template_name': 'dashboard_app/api.html'}), url(r'^streams/$', 'bundle_stream_list'), url(r'^streams(?P/[a-zA-Z0-9/_-]+)bundles/$', 'bundle_list'), url(r'^streams(?P/[a-zA-Z0-9/_-]+)bundles/(?P[0-9a-z]+)/$', 'bundle_detail'), === modified file 'dashboard_app/views.py' --- dashboard_app/views.py 2011-07-12 03:06:00 +0000 +++ dashboard_app/views.py 2011-07-13 12:29:53 +0000 @@ -83,13 +83,6 @@ raise Http404('No %s matches the given query.' % queryset.model._meta.object_name) -@csrf_exempt -def dashboard_xml_rpc_handler(request): - from dashboard_app.xmlrpc import legacy_mapper - from linaro_django_xmlrpc.views import handler - return handler(request, legacy_mapper) - - @BreadCrumb("Dashboard") def index(request): return render_to_response( === modified file 'setup.py' --- setup.py 2011-07-07 11:38:01 +0000 +++ setup.py 2011-07-13 12:50:27 +0000 @@ -54,7 +54,7 @@ 'lava-server >= 0.2.1', 'linaro-dashboard-bundle >= 1.5.2', 'linaro-django-pagination >= 2.0.2', - 'linaro-django-xmlrpc >= 0.3.2', + 'linaro-django-xmlrpc >= 0.4', 'linaro-json >= 2.0.1', # TODO: use json-schema-validator 'pygments >= 1.2', 'south >= 0.7.3',