diff --git a/src/proxy/diazo/jenkins.xml b/src/proxy/diazo/jenkins.xml
deleted file mode 100644
index 7eacea4..0000000
--- a/src/proxy/diazo/jenkins.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/proxy/diazo/trac.xml b/src/proxy/diazo/trac.xml
deleted file mode 100644
index 03ab404..0000000
--- a/src/proxy/diazo/trac.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/proxy/jenkins/diazo.xml b/src/proxy/jenkins/diazo.xml
new file mode 100644
index 0000000..7eacea4
--- /dev/null
+++ b/src/proxy/jenkins/diazo.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/proxy/search_indexes.py b/src/proxy/search_indexes.py
deleted file mode 100644
index c7c413f..0000000
--- a/src/proxy/search_indexes.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import math
-import string
-
-from django.template import loader, Context
-from django.utils.text import slugify
-from haystack import indexes
-from haystack.utils import log as logging
-
-from search.base_indexes import BaseIndex
-from .models import Attachment, Ticket, Wiki, Revision
-
-
-logger = logging.getLogger('haystack')
-
-# the string maketrans always return a string encoded with latin1
-# http://stackoverflow.com/questions/1324067/how-do-i-get-str-translate-to-work-with-unicode-strings
-table = string.maketrans(
- string.punctuation,
- '.' * len(string.punctuation)
-).decode('latin1')
-
-
-class AttachmentIndex(BaseIndex, indexes.Indexable):
- title = indexes.CharField(model_attr='filename')
- description = indexes.CharField(model_attr='description', null=True)
- modified = indexes.DateTimeField(model_attr='created', null=True)
- used_by = indexes.CharField(model_attr='used_by', null=True, stored=False)
- mimetype = indexes.CharField(
- model_attr='mimetype',
- null=True,
- stored=False
- )
- size = indexes.IntegerField(model_attr='size', null=True, stored=False)
- filename = indexes.CharField(stored=False)
-
- def get_model(self):
- return Attachment
-
- def get_updated_field(self):
- return 'created'
-
- def prepare(self, obj):
- data = super(AttachmentIndex, self).prepare(obj)
-
- try:
- file_obj = open(obj.filepath)
- except IOError as e:
- logger.warning(u'IOError: %s - %s', e.strerror, e.filename)
- return data
- backend = self._get_backend(None)
-
- extracted_data = backend.extract_file_contents(file_obj)
- file_obj.close()
-
- if not extracted_data:
- return data
-
- t = loader.select_template(
- ('search/indexes/proxy/attachment_text.txt', )
- )
- data['text'] = t.render(Context({
- 'object': obj,
- 'extracted': extracted_data,
- }))
- return data
-
- def prepare_filename(self, obj):
- return obj.filename.translate(table).replace('.', ' ')
-
- def prepare_icon_name(self, obj):
- return u'file'
-
- def prepare_type(self, obj):
- return u'attachment'
-
-
-class WikiIndex(BaseIndex, indexes.Indexable):
- title = indexes.CharField(model_attr='name')
- collaborators = indexes.CharField(
- model_attr='collaborators',
- null=True,
- stored=False,
- )
-
- def get_model(self):
- return Wiki
-
- def prepare_description(self, obj):
- return u'{}\n{}'.format(obj.wiki_text, obj.collaborators)
-
- def prepare_icon_name(self, obj):
- return u'book'
-
- def prepare_type(self, obj):
- return u'wiki'
-
-
-class TicketIndex(BaseIndex, indexes.Indexable):
- tag = indexes.CharField(model_attr='status', null=True)
- milestone = indexes.CharField(model_attr='milestone', null=True)
- component = indexes.CharField(model_attr='component', null=True)
- severity = indexes.CharField(model_attr='severity', null=True)
- reporter = indexes.CharField(model_attr='reporter', null=True)
- keywords = indexes.CharField(model_attr='keywords', null=True)
- collaborators = indexes.CharField(
- model_attr='collaborators',
- null=True,
- stored=False,
- )
-
- def get_model(self):
- return Ticket
-
- def prepare_description(self, obj):
- return u'{}\n{}\n{}\n{}\n{}\n{}\n{}'.format(
- obj.description, obj.milestone, obj.component, obj.severity,
- obj.reporter, obj.keywords, obj.collaborators
- )
-
- def prepare_icon_name(self, obj):
- return u'tag'
-
- def prepare_title(self, obj):
- return u'#{} - {}'.format(obj.pk, obj.summary)
-
- def prepare_type(self, obj):
- return 'ticket'
-
-
-class RevisionIndex(BaseIndex, indexes.Indexable):
- description = indexes.CharField(model_attr='message', null=True)
- modified = indexes.DateTimeField(model_attr='created', null=True)
- repository_name = indexes.CharField(
- model_attr='repository_name',
- stored=False
- )
-
- def get_model(self):
- return Revision
-
- def get_updated_field(self):
- return 'created'
-
- def get_boost(self, obj):
- boost = super(RevisionIndex, self).get_boost(obj)
- return boost * 0.8
-
- def prepare_icon_name(self, obj):
- return u'align-right'
-
- def prepare_title(self, obj):
- return u'{} [{}]'.format(obj.repository_name, obj.rev)
-
- def prepare_type(self, obj):
- return 'changeset'
diff --git a/src/proxy/templates/proxy/trac.html b/src/proxy/templates/proxy/trac.html
deleted file mode 100644
index bae56e4..0000000
--- a/src/proxy/templates/proxy/trac.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{% extends "base.html" %}
-
-{% block head %}
-
-
- {{ block.super }}
-{% endblock %}
diff --git a/src/proxy/test.html b/src/proxy/test.html
deleted file mode 100644
index 8febf1e..0000000
--- a/src/proxy/test.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
- Painel Principal [Jenkins]Skip to content|
Nenhuma compilação na fila. |
| S | W | Name | Último Sucesso | Última Falha | Última Duração | | |
---|
 |  W | Descrição | % |
---|
 | Estabilidade de construção: Todas as construções recentes falharam. | 0 |
| Portal Interlegis | N/D |
- 1 ano 2 meses
- (#13)
- | 4,2 segundos |  | |
|
\ No newline at end of file
diff --git a/src/proxy/trac/diazo.xml b/src/proxy/trac/diazo.xml
new file mode 100644
index 0000000..03ab404
--- /dev/null
+++ b/src/proxy/trac/diazo.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/proxy/trac/search_indexes.py b/src/proxy/trac/search_indexes.py
new file mode 100644
index 0000000..c7c413f
--- /dev/null
+++ b/src/proxy/trac/search_indexes.py
@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+
+import math
+import string
+
+from django.template import loader, Context
+from django.utils.text import slugify
+from haystack import indexes
+from haystack.utils import log as logging
+
+from search.base_indexes import BaseIndex
+from .models import Attachment, Ticket, Wiki, Revision
+
+
+logger = logging.getLogger('haystack')
+
+# the string maketrans always return a string encoded with latin1
+# http://stackoverflow.com/questions/1324067/how-do-i-get-str-translate-to-work-with-unicode-strings
+table = string.maketrans(
+ string.punctuation,
+ '.' * len(string.punctuation)
+).decode('latin1')
+
+
+class AttachmentIndex(BaseIndex, indexes.Indexable):
+ title = indexes.CharField(model_attr='filename')
+ description = indexes.CharField(model_attr='description', null=True)
+ modified = indexes.DateTimeField(model_attr='created', null=True)
+ used_by = indexes.CharField(model_attr='used_by', null=True, stored=False)
+ mimetype = indexes.CharField(
+ model_attr='mimetype',
+ null=True,
+ stored=False
+ )
+ size = indexes.IntegerField(model_attr='size', null=True, stored=False)
+ filename = indexes.CharField(stored=False)
+
+ def get_model(self):
+ return Attachment
+
+ def get_updated_field(self):
+ return 'created'
+
+ def prepare(self, obj):
+ data = super(AttachmentIndex, self).prepare(obj)
+
+ try:
+ file_obj = open(obj.filepath)
+ except IOError as e:
+ logger.warning(u'IOError: %s - %s', e.strerror, e.filename)
+ return data
+ backend = self._get_backend(None)
+
+ extracted_data = backend.extract_file_contents(file_obj)
+ file_obj.close()
+
+ if not extracted_data:
+ return data
+
+ t = loader.select_template(
+ ('search/indexes/proxy/attachment_text.txt', )
+ )
+ data['text'] = t.render(Context({
+ 'object': obj,
+ 'extracted': extracted_data,
+ }))
+ return data
+
+ def prepare_filename(self, obj):
+ return obj.filename.translate(table).replace('.', ' ')
+
+ def prepare_icon_name(self, obj):
+ return u'file'
+
+ def prepare_type(self, obj):
+ return u'attachment'
+
+
+class WikiIndex(BaseIndex, indexes.Indexable):
+ title = indexes.CharField(model_attr='name')
+ collaborators = indexes.CharField(
+ model_attr='collaborators',
+ null=True,
+ stored=False,
+ )
+
+ def get_model(self):
+ return Wiki
+
+ def prepare_description(self, obj):
+ return u'{}\n{}'.format(obj.wiki_text, obj.collaborators)
+
+ def prepare_icon_name(self, obj):
+ return u'book'
+
+ def prepare_type(self, obj):
+ return u'wiki'
+
+
+class TicketIndex(BaseIndex, indexes.Indexable):
+ tag = indexes.CharField(model_attr='status', null=True)
+ milestone = indexes.CharField(model_attr='milestone', null=True)
+ component = indexes.CharField(model_attr='component', null=True)
+ severity = indexes.CharField(model_attr='severity', null=True)
+ reporter = indexes.CharField(model_attr='reporter', null=True)
+ keywords = indexes.CharField(model_attr='keywords', null=True)
+ collaborators = indexes.CharField(
+ model_attr='collaborators',
+ null=True,
+ stored=False,
+ )
+
+ def get_model(self):
+ return Ticket
+
+ def prepare_description(self, obj):
+ return u'{}\n{}\n{}\n{}\n{}\n{}\n{}'.format(
+ obj.description, obj.milestone, obj.component, obj.severity,
+ obj.reporter, obj.keywords, obj.collaborators
+ )
+
+ def prepare_icon_name(self, obj):
+ return u'tag'
+
+ def prepare_title(self, obj):
+ return u'#{} - {}'.format(obj.pk, obj.summary)
+
+ def prepare_type(self, obj):
+ return 'ticket'
+
+
+class RevisionIndex(BaseIndex, indexes.Indexable):
+ description = indexes.CharField(model_attr='message', null=True)
+ modified = indexes.DateTimeField(model_attr='created', null=True)
+ repository_name = indexes.CharField(
+ model_attr='repository_name',
+ stored=False
+ )
+
+ def get_model(self):
+ return Revision
+
+ def get_updated_field(self):
+ return 'created'
+
+ def get_boost(self, obj):
+ boost = super(RevisionIndex, self).get_boost(obj)
+ return boost * 0.8
+
+ def prepare_icon_name(self, obj):
+ return u'align-right'
+
+ def prepare_title(self, obj):
+ return u'{} [{}]'.format(obj.repository_name, obj.rev)
+
+ def prepare_type(self, obj):
+ return 'changeset'
diff --git a/src/proxy/trac/templates/proxy/trac.html b/src/proxy/trac/templates/proxy/trac.html
new file mode 100644
index 0000000..bae56e4
--- /dev/null
+++ b/src/proxy/trac/templates/proxy/trac.html
@@ -0,0 +1,7 @@
+{% extends "base.html" %}
+
+{% block head %}
+
+
+ {{ block.super }}
+{% endblock %}
diff --git a/src/proxy/trac/urls.py b/src/proxy/trac/urls.py
index de2bb98..686bb5e 100644
--- a/src/proxy/trac/urls.py
+++ b/src/proxy/trac/urls.py
@@ -1,14 +1,10 @@
-from django.conf.urls import patterns, include, url
+from django.conf.urls import patterns, 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()),
+ # Trac
+ url(r'^trac/(?P.*)$', TracProxyView.as_view()),
)
diff --git a/src/proxy/trac/views.py b/src/proxy/trac/views.py
index c2e820c..b7b3ad3 100644
--- a/src/proxy/trac/views.py
+++ b/src/proxy/trac/views.py
@@ -1,24 +1,15 @@
-import os
-
from django.conf import settings
-from revproxy.views import ProxyView
from hitcounter.views import HitCounterViewMixin
+from ..utils import ColabProxyView
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
+class TracProxyView(HitCounterViewMixin, ColabProxyView):
+ upstream = settings.COLAB_TRAC_URL
diazo_theme_template = 'proxy/trac.html'
- diazo_rules = os.path.join(DIAZO_RULES_DIR, 'trac.xml')
- html5 = True
def get_object(self):
obj = None
diff --git a/src/proxy/urls.py b/src/proxy/urls.py
index 1e59ca3..3dc853a 100644
--- a/src/proxy/urls.py
+++ b/src/proxy/urls.py
@@ -1,7 +1,7 @@
from django.conf.urls import patterns, include, url
-from .views import ProxyView, JenkinsProxyView, GitlabProxyView, RedmineProxyView
+from .views import JenkinsProxyView, GitlabProxyView, RedmineProxyView
urlpatterns = patterns('',
diff --git a/src/proxy/utils.py b/src/proxy/utils.py
new file mode 100644
index 0000000..429ebe6
--- /dev/null
+++ b/src/proxy/utils.py
@@ -0,0 +1,10 @@
+
+from django.conf import settings
+
+from revproxy.views import ProxyView
+
+
+class ColabProxyView(ProxyView):
+ add_remote_user = settings.REVPROXY_ADD_REMOTE_USER
+ diazo_theme_template = 'base.html'
+ html5 = True
--
libgit2 0.21.2