From 165c3e804e846e4b45c9613889a4f6b985173520 Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Date: Tue, 26 Aug 2014 17:10:12 -0300 Subject: [PATCH] Moving trac stuff to a different app --- src/accounts/search_indexes.py | 1 - src/accounts/views.py | 2 +- src/api/resources.py | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------- src/api/urls.py | 6 +----- src/badger/utils.py | 4 ++-- src/colab/custom_settings.py | 1 - src/colab/urls.py | 1 + src/home/views.py | 2 +- src/proxy/models.py | 178 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/proxy/templatetags/__init__.py | 0 src/proxy/templatetags/proxy.py | 12 ------------ src/proxy/trac/admin.py | 2 +- src/proxy/trac/models.py | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/proxy/trac/signals.py | 33 +++++++++++++++++++++++++++++++++ src/proxy/trac/urls.py | 14 ++++++++++++++ src/proxy/trac/views.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- src/proxy/urls.py | 10 +--------- src/proxy/views.py | 39 --------------------------------------- src/search/templates/search/includes/search_filters.html | 3 +-- src/search/views.py | 2 +- src/templates/base.html | 2 +- 21 files changed, 311 insertions(+), 311 deletions(-) delete mode 100644 src/proxy/models.py delete mode 100644 src/proxy/templatetags/__init__.py delete mode 100644 src/proxy/templatetags/proxy.py create mode 100644 src/proxy/trac/signals.py create mode 100644 src/proxy/trac/urls.py diff --git a/src/accounts/search_indexes.py b/src/accounts/search_indexes.py index 9700310..ec13877 100644 --- a/src/accounts/search_indexes.py +++ b/src/accounts/search_indexes.py @@ -3,7 +3,6 @@ from haystack import indexes from django.db.models import Count -from proxy.models import Revision, Ticket, Wiki from badger.utils import get_users_counters from .models import User diff --git a/src/accounts/views.py b/src/accounts/views.py index 7745da7..8ec421a 100644 --- a/src/accounts/views.py +++ b/src/accounts/views.py @@ -25,7 +25,7 @@ from haystack.query import SearchQuerySet from super_archives.models import EmailAddress, Message from super_archives.utils.email import send_email_lists from search.utils import trans -from proxy.models import WikiCollabCount, TicketCollabCount +#from proxy.trac.models import WikiCollabCount, TicketCollabCount from .forms import (UserCreationForm, ListsForm, UserUpdateForm, ChangeXMPPPasswordForm) from .errors import XMPPChangePwdException diff --git a/src/api/resources.py b/src/api/resources.py index 9395432..6a891ce 100644 --- a/src/api/resources.py +++ b/src/api/resources.py @@ -7,8 +7,7 @@ from tastypie.constants import ALL_WITH_RELATIONS, ALL from tastypie.resources import ModelResource from super_archives.models import Message, EmailAddress -from proxy.models import Revision, Ticket, Wiki - +#from proxy.trac.models import Revision, Ticket, Wiki User = get_user_model() @@ -66,56 +65,56 @@ class MessageResource(ModelResource): } -class RevisionResource(ModelResource): - class Meta: - queryset = Revision.objects.all() - resource_name = 'revision' - excludes = ['collaborators', ] - filtering = { - 'key': ALL, - 'rev': ALL, - 'author': ALL, - 'message': ALL, - 'repository_name': ALL, - 'created': ALL, - } - - -class TicketResource(ModelResource): - class Meta: - queryset = Ticket.objects.all() - resource_name = 'ticket' - excludes = ['collaborators', ] - filtering = { - 'id': ALL, - 'summary': ALL, - 'description': ALL, - 'milestone': ALL, - 'priority': ALL, - 'component': ALL, - 'version': ALL, - 'severity': ALL, - 'reporter': ALL, - 'author': ALL, - 'status': ALL, - 'keywords': ALL, - 'created': ALL, - 'modified': ALL, - 'modified_by': ALL, - } - - -class WikiResource(ModelResource): - class Meta: - queryset = Wiki.objects.all() - resource_name = 'wiki' - excludes = ['collaborators', ] - filtering = { - 'name': ALL, - 'wiki_text': ALL, - 'author': ALL, - 'name': ALL, - 'created': ALL, - 'modified': ALL, - 'modified_by': ALL, - } +#class RevisionResource(ModelResource): +# class Meta: +# queryset = Revision.objects.all() +# resource_name = 'revision' +# excludes = ['collaborators', ] +# filtering = { +# 'key': ALL, +# 'rev': ALL, +# 'author': ALL, +# 'message': ALL, +# 'repository_name': ALL, +# 'created': ALL, +# } +# +# +#class TicketResource(ModelResource): +# class Meta: +# queryset = Ticket.objects.all() +# resource_name = 'ticket' +# excludes = ['collaborators', ] +# filtering = { +# 'id': ALL, +# 'summary': ALL, +# 'description': ALL, +# 'milestone': ALL, +# 'priority': ALL, +# 'component': ALL, +# 'version': ALL, +# 'severity': ALL, +# 'reporter': ALL, +# 'author': ALL, +# 'status': ALL, +# 'keywords': ALL, +# 'created': ALL, +# 'modified': ALL, +# 'modified_by': ALL, +# } +# +# +#class WikiResource(ModelResource): +# class Meta: +# queryset = Wiki.objects.all() +# resource_name = 'wiki' +# excludes = ['collaborators', ] +# filtering = { +# 'name': ALL, +# 'wiki_text': ALL, +# 'author': ALL, +# 'name': ALL, +# 'created': ALL, +# 'modified': ALL, +# 'modified_by': ALL, +# } diff --git a/src/api/urls.py b/src/api/urls.py index 1dbb36a..4e0b29c 100644 --- a/src/api/urls.py +++ b/src/api/urls.py @@ -4,8 +4,7 @@ from django.conf.urls import patterns, include, url from tastypie.api import Api -from .resources import (UserResource, EmailAddressResource, MessageResource, - RevisionResource, TicketResource, WikiResource) +from .resources import (UserResource, EmailAddressResource, MessageResource) from .views import VoteView @@ -13,9 +12,6 @@ api = Api(api_name='v1') api.register(UserResource()) api.register(EmailAddressResource()) api.register(MessageResource()) -api.register(RevisionResource()) -api.register(TicketResource()) -api.register(WikiResource()) urlpatterns = patterns('', diff --git a/src/badger/utils.py b/src/badger/utils.py index dd3f70f..cee5db9 100644 --- a/src/badger/utils.py +++ b/src/badger/utils.py @@ -2,8 +2,8 @@ from django.db.models import Count -from proxy.models import (Revision, Ticket, Wiki, - WikiCollabCount, TicketCollabCount) +#from proxy.trac.models import (Revision, Ticket, Wiki, +# WikiCollabCount, TicketCollabCount) from accounts.models import User diff --git a/src/colab/custom_settings.py b/src/colab/custom_settings.py index f67685a..2785adf 100644 --- a/src/colab/custom_settings.py +++ b/src/colab/custom_settings.py @@ -110,7 +110,6 @@ INSTALLED_APPS = INSTALLED_APPS + ( 'api', 'rss', 'planet', - 'proxy', 'search', 'badger', 'tz', diff --git a/src/colab/urls.py b/src/colab/urls.py index 54e34c0..7624bf9 100644 --- a/src/colab/urls.py +++ b/src/colab/urls.py @@ -36,6 +36,7 @@ urlpatterns = patterns('', url(r'^colab/admin/', include(admin.site.urls)), url(r'^', include('proxy.urls')), + url(r'^', include('proxy.trac.urls')), ) if settings.DEBUG: diff --git a/src/home/views.py b/src/home/views.py index b5180fb..df501b4 100644 --- a/src/home/views.py +++ b/src/home/views.py @@ -9,7 +9,7 @@ from django.http import HttpResponse, Http404 from search.utils import trans from haystack.query import SearchQuerySet -from proxy.models import WikiCollabCount, TicketCollabCount +#from proxy.trac.models import WikiCollabCount, TicketCollabCount from super_archives.models import Thread diff --git a/src/proxy/models.py b/src/proxy/models.py deleted file mode 100644 index f6a4431..0000000 --- a/src/proxy/models.py +++ /dev/null @@ -1,178 +0,0 @@ -# -*- coding: utf-8 -*- -from django.db import models -from django.conf import settings -import os -import urllib2 - -from django.conf import settings -from django.db import models, connections -from django.db.models.signals import post_save -from django.dispatch import receiver - -from accounts.models import User -from hitcounter.models import HitCounterModelMixin - -class Attachment(models.Model, HitCounterModelMixin): - url = models.TextField(primary_key=True) - attach_id = models.TextField() - used_by = models.TextField() - filename = models.TextField() - author = models.TextField(blank=True) - description = models.TextField(blank=True) - created = models.DateTimeField(blank=True) - mimetype = models.TextField(blank=True) - size = models.IntegerField(blank=True) - - class Meta: - managed = False - db_table = 'attachment_view' - - @property - def filepath(self): - return os.path.join( - settings.ATTACHMENTS_FOLDER_PATH, - self.used_by, - self.attach_id, - urllib2.quote(self.filename.encode('utf8')) - ) - - def get_absolute_url(self): - return u'/raw-attachment/{}'.format(self.url) - - def get_author(self): - try: - return User.objects.get(username=self.author) - except User.DoesNotExist: - return None - - -class Revision(models.Model, HitCounterModelMixin): - key = models.TextField(blank=True, primary_key=True) - rev = models.TextField(blank=True) - author = models.TextField(blank=True) - message = models.TextField(blank=True) - repository_name = models.TextField(blank=True) - created = models.DateTimeField(blank=True, null=True) - - class Meta: - managed = False - db_table = 'revision_view' - - def get_absolute_url(self): - return u'/changeset/{}/{}'.format(self.rev, self.repository_name) - - def get_author(self): - try: - return User.objects.get(username=self.author) - except User.DoesNotExist: - return None - -class Ticket(models.Model, HitCounterModelMixin): - id = models.IntegerField(primary_key=True) - summary = models.TextField(blank=True) - description = models.TextField(blank=True) - milestone = models.TextField(blank=True) - priority = models.TextField(blank=True) - component = models.TextField(blank=True) - version = models.TextField(blank=True) - severity = models.TextField(blank=True) - reporter = models.TextField(blank=True) - author = models.TextField(blank=True) - status = models.TextField(blank=True) - keywords = models.TextField(blank=True) - collaborators = models.TextField(blank=True) - created = models.DateTimeField(blank=True, null=True) - modified = models.DateTimeField(blank=True, null=True) - modified_by = models.TextField(blank=True) - - class Meta: - managed = False - db_table = 'ticket_view' - - def get_absolute_url(self): - return u'/ticket/{}'.format(self.id) - - def get_author(self): - try: - return User.objects.get(username=self.author) - except User.DoesNotExist: - return None - - def get_modified_by(self): - try: - return User.objects.get(username=self.modified_by) - except User.DoesNotExist: - return None - -class Wiki(models.Model, HitCounterModelMixin): - name = models.TextField(primary_key=True) - wiki_text = models.TextField(blank=True) - author = models.TextField(blank=True) - collaborators = models.TextField(blank=True) - created = models.DateTimeField(blank=True, null=True) - modified = models.DateTimeField(blank=True, null=True) - modified_by = models.TextField(blank=True) - - class Meta: - managed = False - db_table = 'wiki_view' - - def get_absolute_url(self): - return u'/wiki/{}'.format(self.name) - - def get_author(self): - try: - return User.objects.get(username=self.author) - except User.DoesNotExist: - return None - - def get_modified_by(self): - try: - return User.objects.get(username=self.modified_by) - except User.DoesNotExist: - return None - - -class WikiCollabCount(models.Model): - author = models.TextField(primary_key=True) - count = models.IntegerField() - - class Meta: - managed = False - db_table = 'wiki_collab_count_view' - - -class TicketCollabCount(models.Model): - author = models.TextField(primary_key=True) - count = models.IntegerField() - - class Meta: - managed = False - db_table = 'ticket_collab_count_view' - - -@receiver(post_save, sender=User) -def change_session_attribute_email(sender, instance, **kwargs): - cursor = connections['trac'].cursor() - - cursor.execute(("UPDATE session_attribute SET value=%s " - "WHERE name='email' AND sid=%s"), - [instance.email, instance.username]) - cursor.execute(("UPDATE session_attribute SET value=%s " - "WHERE name='name' AND sid=%s"), - [instance.get_full_name(), instance.username]) - - cursor.execute(("INSERT INTO session_attribute " - "(sid, authenticated, name, value) " - "SELECT %s, '1', 'email', %s WHERE NOT EXISTS " - "(SELECT 1 FROM session_attribute WHERE sid=%s " - "AND name='email')"), - [instance.username, instance.email, instance.username]) - - cursor.execute(("INSERT INTO session_attribute " - "(sid, authenticated, name, value) " - "SELECT %s, '1', 'name', %s WHERE NOT EXISTS " - "(SELECT 1 FROM session_attribute WHERE sid=%s " - "AND name='name')"), - [instance.username, instance.get_full_name(), - instance.username]) diff --git a/src/proxy/templatetags/__init__.py b/src/proxy/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/src/proxy/templatetags/__init__.py +++ /dev/null diff --git a/src/proxy/templatetags/proxy.py b/src/proxy/templatetags/proxy.py deleted file mode 100644 index ed84192..0000000 --- a/src/proxy/templatetags/proxy.py +++ /dev/null @@ -1,12 +0,0 @@ -from django import template - -from super_archives.utils import url -from django.conf import settings - - -register = template.Library() -TEMPLATE_PATH = 'proxy/tags/' - -@register.assignment_tag -def is_trac_enable(): - return settings.TRAC_ENABLED \ No newline at end of file diff --git a/src/proxy/trac/admin.py b/src/proxy/trac/admin.py index 8c38f3f..6127dc7 100644 --- a/src/proxy/trac/admin.py +++ b/src/proxy/trac/admin.py @@ -1,3 +1,3 @@ from django.contrib import admin -# Register your models here. +from . import signals diff --git a/src/proxy/trac/models.py b/src/proxy/trac/models.py index e69de29..c71b74d 100644 --- a/src/proxy/trac/models.py +++ b/src/proxy/trac/models.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +from django.db import models +from django.conf import settings +import os +import urllib2 + +from accounts.models import User +from hitcounter.models import HitCounterModelMixin + + +class Attachment(models.Model, HitCounterModelMixin): + url = models.TextField(primary_key=True) + attach_id = models.TextField() + used_by = models.TextField() + filename = models.TextField() + author = models.TextField(blank=True) + description = models.TextField(blank=True) + created = models.DateTimeField(blank=True) + mimetype = models.TextField(blank=True) + size = models.IntegerField(blank=True) + + class Meta: + managed = False + db_table = 'attachment_view' + + @property + def filepath(self): + return os.path.join( + settings.ATTACHMENTS_FOLDER_PATH, + self.used_by, + self.attach_id, + urllib2.quote(self.filename.encode('utf8')) + ) + + def get_absolute_url(self): + return u'/raw-attachment/{}'.format(self.url) + + def get_author(self): + try: + return User.objects.get(username=self.author) + except User.DoesNotExist: + return None + + +class Revision(models.Model, HitCounterModelMixin): + key = models.TextField(blank=True, primary_key=True) + rev = models.TextField(blank=True) + author = models.TextField(blank=True) + message = models.TextField(blank=True) + repository_name = models.TextField(blank=True) + created = models.DateTimeField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'revision_view' + + def get_absolute_url(self): + return u'/changeset/{}/{}'.format(self.rev, self.repository_name) + + def get_author(self): + try: + return User.objects.get(username=self.author) + except User.DoesNotExist: + return None + + +class Ticket(models.Model, HitCounterModelMixin): + id = models.IntegerField(primary_key=True) + summary = models.TextField(blank=True) + description = models.TextField(blank=True) + milestone = models.TextField(blank=True) + priority = models.TextField(blank=True) + component = models.TextField(blank=True) + version = models.TextField(blank=True) + severity = models.TextField(blank=True) + reporter = models.TextField(blank=True) + author = models.TextField(blank=True) + status = models.TextField(blank=True) + keywords = models.TextField(blank=True) + collaborators = models.TextField(blank=True) + created = models.DateTimeField(blank=True, null=True) + modified = models.DateTimeField(blank=True, null=True) + modified_by = models.TextField(blank=True) + + class Meta: + managed = False + db_table = 'ticket_view' + + def get_absolute_url(self): + return u'/ticket/{}'.format(self.id) + + def get_author(self): + try: + return User.objects.get(username=self.author) + except User.DoesNotExist: + return None + + def get_modified_by(self): + try: + return User.objects.get(username=self.modified_by) + except User.DoesNotExist: + return None + + +class Wiki(models.Model, HitCounterModelMixin): + name = models.TextField(primary_key=True) + wiki_text = models.TextField(blank=True) + author = models.TextField(blank=True) + collaborators = models.TextField(blank=True) + created = models.DateTimeField(blank=True, null=True) + modified = models.DateTimeField(blank=True, null=True) + modified_by = models.TextField(blank=True) + + class Meta: + managed = False + db_table = 'wiki_view' + + def get_absolute_url(self): + return u'/wiki/{}'.format(self.name) + + def get_author(self): + try: + return User.objects.get(username=self.author) + except User.DoesNotExist: + return None + + def get_modified_by(self): + try: + return User.objects.get(username=self.modified_by) + except User.DoesNotExist: + return None + + +class WikiCollabCount(models.Model): + author = models.TextField(primary_key=True) + count = models.IntegerField() + + class Meta: + managed = False + db_table = 'wiki_collab_count_view' + + +class TicketCollabCount(models.Model): + author = models.TextField(primary_key=True) + count = models.IntegerField() + + class Meta: + managed = False + db_table = 'ticket_collab_count_view' diff --git a/src/proxy/trac/signals.py b/src/proxy/trac/signals.py new file mode 100644 index 0000000..0d477a6 --- /dev/null +++ b/src/proxy/trac/signals.py @@ -0,0 +1,33 @@ + +from django.db import connections +from django.dispatch import receiver +from django.db.models.signals import post_save + +from accounts.models import User + + +@receiver(post_save, sender=User) +def change_session_attribute_email(sender, instance, **kwargs): + cursor = connections['trac'].cursor() + + cursor.execute(("UPDATE session_attribute SET value=%s " + "WHERE name='email' AND sid=%s"), + [instance.email, instance.username]) + cursor.execute(("UPDATE session_attribute SET value=%s " + "WHERE name='name' AND sid=%s"), + [instance.get_full_name(), instance.username]) + + cursor.execute(("INSERT INTO session_attribute " + "(sid, authenticated, name, value) " + "SELECT %s, '1', 'email', %s WHERE NOT EXISTS " + "(SELECT 1 FROM session_attribute WHERE sid=%s " + "AND name='email')"), + [instance.username, instance.email, instance.username]) + + cursor.execute(("INSERT INTO session_attribute " + "(sid, authenticated, name, value) " + "SELECT %s, '1', 'name', %s WHERE NOT EXISTS " + "(SELECT 1 FROM session_attribute WHERE sid=%s " + "AND name='name')"), + [instance.username, instance.get_full_name(), + instance.username]) diff --git a/src/proxy/trac/urls.py b/src/proxy/trac/urls.py new file mode 100644 index 0000000..de2bb98 --- /dev/null +++ b/src/proxy/trac/urls.py @@ -0,0 +1,14 @@ + +from django.conf.urls import patterns, include, url + +from .views import TracProxyView + + +urlpatterns = patterns('', + # Trac URLs + url(r'^(?P(?:admin|wiki|changeset|newticket|ticket|chrome|timeline|roadmap|browser|report|tags|query|about|prefs|log|attachment|raw-attachment|diff|milestone).*)$', + TracProxyView.as_view()), + + # Trac + url(r'^trac/(?P.*)$', TracProxyView.as_view()), +) diff --git a/src/proxy/trac/views.py b/src/proxy/trac/views.py index 91ea44a..c2e820c 100644 --- a/src/proxy/trac/views.py +++ b/src/proxy/trac/views.py @@ -1,3 +1,51 @@ -from django.shortcuts import render -# Create your views here. +import os + +from django.conf import settings + +from revproxy.views import ProxyView +from hitcounter.views import HitCounterViewMixin + +from .models import Wiki, Ticket, Revision + + +CWD = os.path.abspath(os.path.dirname(__file__)) +DIAZO_RULES_DIR = os.path.join(CWD, 'diazo') + + +class TracProxyView(HitCounterViewMixin, ProxyView): + base_url = settings.COLAB_TRAC_URL + add_remote_user = settings.REVPROXY_ADD_REMOTE_USER + diazo_theme_template = 'proxy/trac.html' + diazo_rules = os.path.join(DIAZO_RULES_DIR, 'trac.xml') + html5 = True + + def get_object(self): + obj = None + + if self.request.path_info.startswith('/wiki'): + wiki_name = self.request.path_info.split('/', 2)[-1] + if not wiki_name: + wiki_name = 'WikiStart' + try: + obj = Wiki.objects.get(name=wiki_name) + except Wiki.DoesNotExist: + return None + elif self.request.path_info.startswith('/ticket'): + ticket_id = self.request.path_info.split('/')[2] + try: + obj = Ticket.objects.get(id=ticket_id) + except (Ticket.DoesNotExist, ValueError): + return None + elif self.request.path_info.startswith('/changeset'): + try: + changeset, repo = self.request.path_info.split('/')[2:4] + except ValueError: + return None + try: + obj = Revision.objects.get(rev=changeset, + repository_name=repo) + except Revision.DoesNotExist: + return None + + return obj diff --git a/src/proxy/urls.py b/src/proxy/urls.py index c755915..1e59ca3 100644 --- a/src/proxy/urls.py +++ b/src/proxy/urls.py @@ -1,24 +1,16 @@ from django.conf.urls import patterns, include, url -from .views import ProxyView, JenkinsProxyView, GitlabProxyView, RedmineProxyView, TracProxyView +from .views import ProxyView, JenkinsProxyView, GitlabProxyView, RedmineProxyView urlpatterns = patterns('', - # Trac URLs - url(r'^(?P(?:admin|wiki|changeset|newticket|ticket|chrome|timeline|roadmap|browser|report|tags|query|about|prefs|log|attachment|raw-attachment|diff|milestone).*)$', - TracProxyView.as_view()), - # Jenkins URLs url(r'^ci/(?P.*)$', JenkinsProxyView.as_view()), - # Trac - url(r'^trac/(?P.*)$', TracProxyView.as_view()), - # Gitlab url(r'^gitlab/(?P.*)$', GitlabProxyView.as_view()), # Redmine url(r'^redmine/(?P.*)$', RedmineProxyView.as_view()) - ) diff --git a/src/proxy/views.py b/src/proxy/views.py index 56d864b..1a4cc5d 100644 --- a/src/proxy/views.py +++ b/src/proxy/views.py @@ -4,50 +4,11 @@ import os from django.conf import settings from revproxy.views import ProxyView -from .models import Wiki, Ticket, Revision -from hitcounter.views import HitCounterViewMixin CWD = os.path.abspath(os.path.dirname(__file__)) DIAZO_RULES_DIR = os.path.join(CWD, 'diazo') -class TracProxyView(HitCounterViewMixin, ProxyView): - base_url = settings.COLAB_TRAC_URL - add_remote_user = settings.REVPROXY_ADD_REMOTE_USER - diazo_theme_template = 'proxy/trac.html' - diazo_rules = os.path.join(DIAZO_RULES_DIR, 'trac.xml') - html5 = True - - def get_object(self): - obj = None - - if self.request.path_info.startswith('/wiki'): - wiki_name = self.request.path_info.split('/', 2)[-1] - if not wiki_name: - wiki_name = 'WikiStart' - try: - obj = Wiki.objects.get(name=wiki_name) - except Wiki.DoesNotExist: - return None - elif self.request.path_info.startswith('/ticket'): - ticket_id = self.request.path_info.split('/')[2] - try: - obj = Ticket.objects.get(id=ticket_id) - except (Ticket.DoesNotExist, ValueError): - return None - elif self.request.path_info.startswith('/changeset'): - try: - changeset, repo = self.request.path_info.split('/')[2:4] - except ValueError: - return None - try: - obj = Revision.objects.get(rev=changeset, - repository_name=repo) - except Revision.DoesNotExist: - return None - - return obj - class JenkinsProxyView(ProxyView): base_url = settings.COLAB_CI_URL diff --git a/src/search/templates/search/includes/search_filters.html b/src/search/templates/search/includes/search_filters.html index 78fcd2b..d9068d7 100644 --- a/src/search/templates/search/includes/search_filters.html +++ b/src/search/templates/search/includes/search_filters.html @@ -1,4 +1,4 @@ -{% load i18n superarchives proxy %} +{% load i18n superarchives %} {% if filters %}
    @@ -111,7 +111,6 @@

    {% trans "Types" %}

      - {% is_trac_enable as is_trac %} {% if is_trac %}
    • diff --git a/src/search/views.py b/src/search/views.py index b1cc954..d9f4c51 100644 --- a/src/search/views.py +++ b/src/search/views.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext as _ from haystack.views import SearchView -from proxy.models import Attachment +#from proxy.trac.models import Attachment class ColabSearchView(SearchView): diff --git a/src/templates/base.html b/src/templates/base.html index 2669f93..41ed11a 100644 --- a/src/templates/base.html +++ b/src/templates/base.html @@ -1,5 +1,5 @@ -{% load i18n static browserid conversejs gravatar proxy %} +{% load i18n static browserid conversejs gravatar %} -- libgit2 0.21.2