Commit 9a0657813912e128a16ba2321d44cca2f21aaf84

Authored by Gust
Committed by Sergio Oliveira
1 parent 03350be3

Updated haystack model.

Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Signed-off-by: Rodrigo Siqueira de Melo <rodrigosiqueiramelo@gmail.com>
Showing 1 changed file with 121 additions and 0 deletions   Show diff stats
colab/proxy/gitlab/search_indexes.py 0 → 100644
@@ -0,0 +1,121 @@ @@ -0,0 +1,121 @@
  1 +# -*- coding: utf-8 -*-
  2 +
  3 +import math
  4 +import string
  5 +
  6 +from django.template import loader, Context
  7 +from django.utils.text import slugify
  8 +from haystack import indexes
  9 +from haystack.utils import log as logging
  10 +
  11 +from colab.search.base_indexes import BaseIndex
  12 +from .models import GitlabProject, GitlabMergeRequest, GitlabIssue, GitlabComment
  13 +
  14 +
  15 +logger = logging.getLogger('haystack')
  16 +
  17 +# the string maketrans always return a string encoded with latin1
  18 +# http://stackoverflow.com/questions/1324067/how-do-i-get-str-translate-to-work-with-unicode-strings
  19 +table = string.maketrans(
  20 + string.punctuation,
  21 + '.' * len(string.punctuation)
  22 +).decode('latin1')
  23 +
  24 +class GitlabProjectIndex(indexes.SearchIndex, indexes.Indexable):
  25 + text = indexes.CharField(document=True, use_template=False, stored=False)
  26 + title = indexes.CharField(model_attr='name')
  27 + description = indexes.CharField(model_attr='description', null=True)
  28 + url = indexes.CharField(model_attr='url', indexed=False)
  29 + type = indexes.CharField()
  30 + icon_name = indexes.CharField()
  31 + tag = indexes.CharField()
  32 + created = indexes.DateTimeField(model_attr='created_at', null=True)
  33 +
  34 + def prepare_tag(self, obj):
  35 + return "{}".format(obj.name_with_namespace.split('/')[0].strip())
  36 +
  37 + def prepare_icon_name(self, obj):
  38 + return u'file'
  39 +
  40 + def get_ful_name(self):
  41 + self.objs.name
  42 +
  43 + def get_model(self):
  44 + return GitlabProject
  45 +
  46 + def prepare_icon_name(self, obj):
  47 + return u'book'
  48 +
  49 + def prepare_type(self, obj):
  50 + return u'gitlab'
  51 +
  52 +class GitlabMergeRequestIndex(indexes.SearchIndex, indexes.Indexable):
  53 +
  54 + text = indexes.CharField(document=True, use_template=False, stored=False)
  55 + description = indexes.CharField(model_attr='description')
  56 + title = indexes.CharField(model_attr='title')
  57 + tag = indexes.CharField(model_attr='state')
  58 + url = indexes.CharField(model_attr='url', indexed=False)
  59 + icon_name = indexes.CharField()
  60 + type = indexes.CharField(model_attr='type')
  61 +
  62 + modified_by = indexes.CharField(model_attr='modified_by', null=True)
  63 + modified_by_url = indexes.CharField(model_attr='modified_by_url', null=True)
  64 + modified = indexes.DateTimeField(model_attr='modified', null=True)
  65 +
  66 +
  67 + def get_model(self):
  68 + return GitlabMergeRequest
  69 +
  70 + def prepare_icon_name(self, obj):
  71 + return u'file'
  72 +
  73 + def prepare_type(self, obj):
  74 + return u'merge_request'
  75 +
  76 +class GitlabIssueIndex(indexes.SearchIndex, indexes.Indexable):
  77 +
  78 + text = indexes.CharField(document=True, use_template=False, stored=False)
  79 + description = indexes.CharField(model_attr='description')
  80 + title = indexes.CharField(model_attr='title')
  81 + tag = indexes.CharField(model_attr='state')
  82 + url = indexes.CharField(model_attr='url', indexed=False)
  83 + icon_name = indexes.CharField()
  84 + type = indexes.CharField(model_attr='type')
  85 +
  86 + modified_by = indexes.CharField(model_attr='modified_by', null=True)
  87 + modified_by_url = indexes.CharField(model_attr='modified_by_url', null=True)
  88 + modified = indexes.DateTimeField(model_attr='modified', null=True)
  89 +
  90 +
  91 + def get_model(self):
  92 + return GitlabIssue
  93 +
  94 + def prepare_icon_name(self, obj):
  95 + return u'align-right'
  96 +
  97 + def prepare_type(self, obj):
  98 + return u'merge_request'
  99 +
  100 +class GitlabCommentIndex(indexes.SearchIndex, indexes.Indexable):
  101 +
  102 + text = indexes.CharField(document=True, use_template=False, stored=False)
  103 + description = indexes.CharField(model_attr='description')
  104 + title = indexes.CharField(model_attr='title')
  105 + tag = indexes.CharField()
  106 + url = indexes.CharField(model_attr='url', indexed=False)
  107 + icon_name = indexes.CharField()
  108 + type = indexes.CharField(model_attr='type')
  109 +
  110 + modified_by = indexes.CharField(model_attr='modified_by', null=True)
  111 + modified_by_url = indexes.CharField(model_attr='modified_by_url', null=True)
  112 + modified = indexes.DateTimeField(model_attr='modified', null=True)
  113 +
  114 + def prepare_tag(self, obj):
  115 + return obj.tag
  116 +
  117 + def get_model(self):
  118 + return GitlabComment
  119 +
  120 + def prepare_icon_name(self, obj):
  121 + return u'align-right'
0 \ No newline at end of file 122 \ No newline at end of file