Пример #1
0
    def test_serialize_volunteer(self):
        project = Project(volunteername='B. Smith',
                          volunteerhomestate='ID')
        result = api._serialize_volunteer(project)
        self.assertEqual(result['name'], 'B. Smith')
        self.assertEqual(result['homestate'], 'ID')
        self.assertEqual(result['picture'], None)

        project.volunteerpicture = Media()
        project.volunteerpicture.file = Mock()
        project.volunteerpicture.file.url = 'urlhere'
        result = api._serialize_volunteer(project)
        self.assertEqual(result['name'], 'B. Smith')
        self.assertEqual(result['homestate'], 'ID')
        self.assertEqual(result['picture'], 'urlhere')
Пример #2
0
    def test_serialize(self):
        country = Country(name='Awesomeland')
        account = Account()
        project = Project(account=account, country=country)
        pd = api.ProjectDetail()

        result = pd.serialize(project)
        self.assertEqual(result['title'], '')
        self.assertEqual(result['tagline'], None)
        self.assertEqual(result['country'], 'Awesomeland')
        self.assertEqual(result['featured_image'], None)

        project.title = 'SomeTitle'
        project.tagline = 'SomeTagline'
        project.featured_image = Media()
        project.featured_image.file = Mock()
        project.featured_image.file.url = 'urlhere'
        result = pd.serialize(project)
        self.assertEqual(result['title'], 'SomeTitle')
        self.assertEqual(result['tagline'], 'SomeTagline')
        self.assertEqual(result['featured_image'], 'urlhere')
Пример #3
0
    def test_serialize_account(self):
        account = Account()
        project = Project(account=account)

        result = api._serialize_account(project)
        self.assertEqual(result['goal'], None)
        self.assertEqual(result['community_contribution'], None)
        self.assertEqual(result['total_donated'], 0)
        self.assertEqual(result['total_raised'], 0)
        self.assertEqual(result['total_cost'], 0)
        self.assertEqual(result['percent_raised'], 0)
        self.assertEqual(result['percent_community'], 0)
        self.assertEqual(result['remaining'], 0)
        self.assertEqual(result['funded'], False)

        account.goal = 2400
        account.community_contribution = 600
        account.current = 900
        result = api._serialize_account(project)
        self.assertEqual(result['goal'], 2400)
        self.assertEqual(result['community_contribution'], 600)
        self.assertEqual(result['total_donated'], 900)
        self.assertEqual(result['total_raised'], 1500)
        self.assertEqual(result['total_cost'], 3000)
        self.assertEqual(result['percent_raised'], 50)
        self.assertEqual(result['percent_community'], 20)
        self.assertEqual(result['remaining'], 1500)
        self.assertEqual(result['funded'], False)

        account.current = 2400
        result = api._serialize_account(project)
        self.assertEqual(result['total_donated'], 2400)
        self.assertEqual(result['total_raised'], 3000)
        self.assertEqual(result['percent_raised'], 100)
        self.assertEqual(result['remaining'], 0)
        self.assertEqual(result['funded'], True)
def create_pcpp(account, row, issue_map):
    """Create and save a project (and account). This is a bit more complex for
    projects, which have goal amounts, etc."""
    country_name = row['LOCATION']
    country = Country.objects.filter(name__iexact=country_name).first()
    if not country:
        logging.getLogger('peacecorps.sync_accounting').warning(
            "%s: Country does not exist: %s", row['PROJ_NO'], row['LOCATION'])
    issue = issue_map.find(row['SECTOR'])
    if not issue and row['SECTOR'] != 'None':
        logging.getLogger('peacecorps.sync_accounting').warning(
            "%s: Sector does not exist: %s", row['PROJ_NO'], row['SECTOR'])

    if country and (issue or row['SECTOR'] == 'None'):
        set_balances(row, account)
        account.save()

        volunteername = row['PCV_NAME']
        if volunteername.startswith(row['STATE']):
            volunteername = volunteername[len(row['STATE']):].strip()

        summary = clean_description(row['SUMMARY'])
        sirtrevorobj = {"data": [{"type": "text", "data": {"text": summary}}]}
        description = json.dumps(sirtrevorobj)

        project = Project(title=row['PROJ_NAME1'],
                          country=country,
                          account=account,
                          volunteername=volunteername,
                          volunteerhomestate=row['STATE'],
                          description=description)
        if issue:
            project.overflow = issue.account
            project.save()
            project.campaigns.add(issue)
        else:
            project.save()
Пример #5
0
def create_pcpp(account, row, issue_map):
    """Create and save a project (and account). This is a bit more complex for
    projects, which have goal amounts, etc."""
    country_name = row['LOCATION']
    country = Country.objects.filter(name__iexact=country_name).first()
    if not country:
        logging.getLogger('peacecorps.sync_accounting').warning(
            "%s: Country does not exist: %s", row['PROJ_NO'], row['LOCATION'])
    issue = issue_map.find(row['SECTOR'])
    if not issue and row['SECTOR'] != 'None':
        logging.getLogger('peacecorps.sync_accounting').warning(
            "%s: Sector does not exist: %s", row['PROJ_NO'], row['SECTOR'])

    if country and (issue or row['SECTOR'] == 'None'):
        goal = cents_from(row['PROJ_REQ'])
        balance = cents_from(row['UNIDENT_BAL'])
        account.current = goal - balance
        account.goal = goal
        account.community_contribution = cents_from(row['OVERS_PART'] or '0')
        account.save()

        volunteername = row['PCV_NAME']
        if volunteername.startswith(row['STATE']):
            volunteername = volunteername[len(row['STATE']):].strip()

        summary = clean_description(row['SUMMARY'])
        sirtrevorobj = {"data": [{"type": "text", "data": {"text": summary}}]}
        description = json.dumps(sirtrevorobj)

        project = Project(
            title=row['PROJ_NAME1'], country=country, account=account,
            volunteername=volunteername, volunteerhomestate=row['STATE'],
            description=description
        )
        if issue:
            project.overflow = issue.account
            project.save()
            project.campaigns.add(issue)
        else:
            project.save()