From 59419836854c6d82169e5483793e3657ef55d857 Mon Sep 17 00:00:00 2001 From: carol15022 Date: Tue, 3 Feb 2015 16:48:53 -0200 Subject: [PATCH] Function for add trac_wiki in colab. --- colab/proxy/trac/data_api.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/colab/proxy/trac/data_api.py b/colab/proxy/trac/data_api.py index b7e18a9..8b141d9 100644 --- a/colab/proxy/trac/data_api.py +++ b/colab/proxy/trac/data_api.py @@ -1,7 +1,43 @@ from colab.proxy.utils.proxy_data_api import ProxyDataAPI +import time +from django.db import connections +from colab.proxy.trac.models import Attachment, Revision, Ticket, Wiki +from django.utils import timezone class TracDataAPI(ProxyDataAPI): def fetch_data(self): - pass + attachment = Attachment() + revision = Revision() + ticket = Ticket() + connection = connections['trac'] + cursor = connection.cursor() + self.fetch_data_wiki(cursor) + + def fetch_data_wiki(self, cursor): + wiki = Wiki() + cursor.execute('''SELECT * FROM wiki;''') + wiki_dict = self.dictfetchall(cursor) + collaborators = [] + + for line in wiki_dict: + wiki.name = line['name'] + wiki.text = line['text'] + wiki.author = line['author'] + if line['author'] not in collaborators: + collaborators.append(line['author']) + wiki.collaborators = collaborators + local_time = line['time']/1000000 + wiki.created = time.strftime('%Y-%m-%d %H:%M:%S', + time.localtime(local_time)) + wiki.modified = str(timezone.now()) + wiki.modified_by = wiki.author + wiki.save() + + def dictfetchall(self, cursor): + desc = cursor.description + return [ + dict(zip([col[0] for col in desc], row)) + for row in cursor.fetchall() + ] -- libgit2 0.21.2