Commit 59419836854c6d82169e5483793e3657ef55d857

Authored by carol15022
Committed by Sergio Oliveira
1 parent bba37984
Exists in trac_indexing

Function for add trac_wiki in colab.

Signed-off-by: Thiago Ribeiro <thiagitosouza@hotmail.com>
Showing 1 changed file with 37 additions and 1 deletions   Show diff stats
colab/proxy/trac/data_api.py
1 1 from colab.proxy.utils.proxy_data_api import ProxyDataAPI
  2 +import time
  3 +from django.db import connections
  4 +from colab.proxy.trac.models import Attachment, Revision, Ticket, Wiki
  5 +from django.utils import timezone
2 6  
3 7  
4 8 class TracDataAPI(ProxyDataAPI):
5 9  
6 10 def fetch_data(self):
7   - pass
  11 + attachment = Attachment()
  12 + revision = Revision()
  13 + ticket = Ticket()
  14 + connection = connections['trac']
  15 + cursor = connection.cursor()
  16 + self.fetch_data_wiki(cursor)
  17 +
  18 + def fetch_data_wiki(self, cursor):
  19 + wiki = Wiki()
  20 + cursor.execute('''SELECT * FROM wiki;''')
  21 + wiki_dict = self.dictfetchall(cursor)
  22 + collaborators = []
  23 +
  24 + for line in wiki_dict:
  25 + wiki.name = line['name']
  26 + wiki.text = line['text']
  27 + wiki.author = line['author']
  28 + if line['author'] not in collaborators:
  29 + collaborators.append(line['author'])
  30 + wiki.collaborators = collaborators
  31 + local_time = line['time']/1000000
  32 + wiki.created = time.strftime('%Y-%m-%d %H:%M:%S',
  33 + time.localtime(local_time))
  34 + wiki.modified = str(timezone.now())
  35 + wiki.modified_by = wiki.author
  36 + wiki.save()
  37 +
  38 + def dictfetchall(self, cursor):
  39 + desc = cursor.description
  40 + return [
  41 + dict(zip([col[0] for col in desc], row))
  42 + for row in cursor.fetchall()
  43 + ]
... ...