def addProject(self, project):
        self.totalBudget += convertAmountStringToInteger(project.budget)
        self.projectCount += 1
        self.subprojectCount += int(project.numberOfSubProjects)

        currentToPlace = project

        for i in range(3):
            if self.NLargest[i] is None:
                self.NLargest[i] = currentToPlace
                break
            elif convertAmountStringToInteger(self.NLargest[i].budget) < convertAmountStringToInteger(
                    currentToPlace.budget):
                temp = self.NLargest[i]
                self.NLargest[i] = currentToPlace
                currentToPlace = temp
    def addProject(self, project):
        self.totalBudget += convertAmountStringToInteger(project.budget)
        self.projectCount += 1
        self.subprojectCount += int(project.numberOfSubProjects)

        currentToPlace = project

        for i in range(3):
            if self.NLargest[i] is None:
                self.NLargest[i] = currentToPlace
                break
            elif convertAmountStringToInteger(
                    self.NLargest[i].budget) < convertAmountStringToInteger(
                        currentToPlace.budget):
                temp = self.NLargest[i]
                self.NLargest[i] = currentToPlace
                currentToPlace = temp
def doLogCounts():
    counts = []
    for i in range(8):
        counts.append(0)

    for project in Project.objects.all():
        counts[getLogBucketForAmount(project.budget)] += 1
        if convertAmountStringToInteger(project.budget) >= 100000000:
            print("%s : %s (%s)" % (project.title, project.budget, project.codeNumber))
def doLogCounts():
    counts = []
    for i in range(8):
        counts.append(0)

    for project in Project.objects.all():
        counts[getLogBucketForAmount(project.budget)] += 1
        if convertAmountStringToInteger(project.budget) >= 100000000:
            print("%s : %s (%s)" %
                  (project.title, project.budget, project.codeNumber))
def doSumsPerOperationalProgram():
    sums = {}
    mapping = {}
    for code in opProgsCodes:
        sums[code] = 0
    for project in Project.objects.all():
        sums[project.operationalProgramNumber] += convertAmountStringToInteger(project.budget)
        if project.operationalProgramNumber not in mapping:
            mapping[project.operationalProgramNumber] = project.operationalProgramTitle

    print(sums)
    total = 0
    for k, v in sums.items():
        total += v

    print(total)
def doSumsPerOperationalProgram():
    sums = {}
    mapping = {}
    for code in opProgsCodes:
        sums[code] = 0
    for project in Project.objects.all():
        sums[project.operationalProgramNumber] += convertAmountStringToInteger(
            project.budget)
        if project.operationalProgramNumber not in mapping:
            mapping[project.
                    operationalProgramNumber] = project.operationalProgramTitle

    print(sums)
    total = 0
    for k, v in sums.items():
        total += v

    print(total)
def getLogBucketForAmount(amount):
    value = convertAmountStringToInteger(amount)
    result = floor(log(value, 10)) - 2
    if result < 0:
        result = 0
    return result
 def __init__(self, project):
     self.budget = convertAmountStringToInteger(project.budget)
     self.startDate = datetime.strptime(project.startDate, "%d/%m/%Y")
     self.opProgCode = project.operationalProgramNumber
def getLogBucketForAmount(amount):
    value = convertAmountStringToInteger(amount)
    result = floor(log(value, 10)) - 2
    if result < 0:
        result = 0
    return result
 def __init__(self, project):
     self.budget = convertAmountStringToInteger(project.budget)
     self.startDate = datetime.strptime(project.startDate, "%d/%m/%Y")
     self.opProgCode = project.operationalProgramNumber