summaryrefslogtreecommitdiff
path: root/patchtracker/views.py
blob: 3ac95e40d5832e1e57e7bf8b4af33d2a5e521014 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import os

import django.http
import django.shortcuts
import django.template

import DebTarHandler
import DiffGzHandler
import Conf
import models

def package_vers(request, package, version):
  pkg = models.SourcePackage.objects.get( name=package, version=version )
  ctx = django.template.RequestContext(request)
  tmpl = 'package_vers.html'
  diffhandler = None
  if pkg.diffgz_name:
    dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
    diffhandler = DiffGzHandler.DiffGzHandler(dgz)
  extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf, 'diffhandler':diffhandler }
  return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)

def download_series_patch(request, package, version, patch):
  pkg = models.SourcePackage.objects.get( name=package, version=version )
  diffhandler = None
  if pkg.diffgz_name:
    dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
    diffhandler = DiffGzHandler.DiffGzHandler(dgz)
  elif pkg.debtar_name:
    dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
    diffhandler = DebTarHandler(dtar)
  patchContents = diffhandler.series().fetch(patch)
  return django.http.HttpResponse(patchContents, mimetype="text/plain")

def view_series_patch(request, package, version, patch):
  pkg = models.SourcePackage.objects.get( name=package, version=version )
  ctx = django.template.RequestContext(request)
  tmpl = 'patch_view.html'
  diffhandler = None
  if pkg.diffgz_name:
    dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
    diffhandler = DiffGzHandler.DiffGzHandler(dgz)
  elif pkg.debtar_name:
    dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
    diffhandler = DebTarHandler(dtar)
  patchContents = diffhandler.series().fetch(patch)
  extra = { 'pkg':pkg, 'patch':patch, 'patchContents':patchContents,
             'patchType':'series', 'conf':Conf }
  return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)

def download_debianonly_patch(request, package, version):
  pkg = models.SourcePackage.objects.get( name=package, version=version )
  diffhandler = None
  if pkg.diffgz_name:
    dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
    diffhandler = DiffGzHandler.DiffGzHandler(dgz)
  elif pkg.debtar_name:
    dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
    diffhandler = DebTarHandler(dtar)
  patchContents = diffhandler.debiandir()
  return django.http.HttpResponse(patchContents, mimetype="text/plain")

def view_debianonly_patch(request, package, version):
  pkg = models.SourcePackage.objects.get( name=package, version=version )
  ctx = django.template.RequestContext(request)
  tmpl = 'patch_view.html'
  diffhandler = None
  if pkg.diffgz_name:
    dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
    diffhandler = DiffGzHandler.DiffGzHandler(dgz)
  elif pkg.debtar_name:
    dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
    diffhandler = DebTarHandler(dtar)
  patchContents = diffhandler.debiandir()
  extra = { 'pkg':pkg, 'patch':'debian-dir only changes', 
            'patchContents':patchContents, 'patchType':'series', 'conf':Conf }
  return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)