#!/usr/bin/env python

import os
import urllib

class PackageGroup:
    
    def __init__(self, name):
        self.name = name
        self.description = ''
        self.packages = []    

    def addPackage(self, package):
        self.packages.append(package)

    def getTitle(self):
        return getattr(self, 'title', self.name)

    def getLinkedTitle(self):
        title = self.getTitle()
        if self.getHomepage():
            title = '<a href="%s">%s</a>' % (self.getHomepage(), title)
        return title

    def getDescription(self):
        return self.description

    def getHomepage(self):
        return getattr(self, 'homepage', '')
        
    def getURL(self, cgi):
        return os.path.join(cgi, urllib.quote_plus(self.name))

    def renderInfoAsHTML(self, fields, cgi, prefix=''):
        print '<p>%s<a name="%s"><b>%s</b></a></p>' % (prefix, self.getTitle(), self.getLinkedTitle())
        if self.getDescription():
            print '<p>%s</p>' % self.getDescription()
            self.renderPackagesAsTables(fields, cgi)

    def renderPackagesAsTables(self, fields, cgi):
        for package in self.packages:
            package.renderAsTable(fields, cgi)

    def selfTest(self):
        print 'Self-test for package group: %s' % self.name
        print " Description: %s" % self.description
        print " I contain %s package(s)" % len(self.packages)
        for package in self.packages:
            package.selfTest()
