def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.org = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.user_password = '******' self.user = self._create_user('*****@*****.**', self.user_password) self.c.login(username=self.user.username, password=self.user_password)
def setUp(self): # Create necessary groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create project self.project = Project.objects.create(title="Test Project") # Create reporting organisation self.reporting_org = Organisation.objects.create( name="REST reporting", long_name="REST reporting org", new_organisation_type=22) # Create partnership Partnership.objects.create( project=self.project, organisation=self.reporting_org, iati_organisation_role=Partnership.IATI_REPORTING_ORGANISATION, ) # Create active user self.user, self.username, self.password = create_user() # Create employment Employment.objects.create( user=self.user, organisation=self.reporting_org, group=Group.objects.get(name='Admins'), is_approved=True, ) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
def setUp(self): # Create necessary groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create project self.project = Project.objects.create(title="Test Project") # Create reporting organisation self.reporting_org = Organisation.objects.create( name="REST reporting", long_name="REST reporting org", new_organisation_type=22 ) # Create partnership Partnership.objects.create( project=self.project, organisation=self.reporting_org, iati_organisation_role=Partnership.IATI_REPORTING_ORGANISATION, ) # Create active user self.user, self.username, self.password = create_user() # Create employment Employment.objects.create( user=self.user, organisation=self.reporting_org, group=Group.objects.get(name='Admins'), is_approved=True, ) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.password = '******' self.user1 = self._create_user('*****@*****.**', self.password, is_admin=True) self.user2 = self._create_user('*****@*****.**', self.password, is_admin=True) self.user3 = self._create_user('*****@*****.**', self.password) self.org = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.c.login(username=self.user1.username, password=self.password) self.admin_group = Group.objects.get(name='Admins') self.user_group = Group.objects.get(name='Users')
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.org = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.user_password = '******' self.user = self._create_user('*****@*****.**', self.user_password) self.c.login(username=self.user.username, password=self.user_password) version = Version.objects.create(code=settings.IATI_VERSION) self.country = Country.objects.create(code='CI', name=u'CI - C\xc3\xb4te Divoire', version=version)
def setUp(self): r""" User-L User-M User-N User-O User-P | \ / \ / / (A-owned) \ / \ / / Org-AA -------- Org-A Org-B ----- Org-BB (explicitly B-owned) | / \ / \ \ | / \ / \ \ +------ Project-X Project-Y Project-Z Project-W """ # Setup groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Setup projects self.project_x = self.create_project('Project-X') self.project_y = self.create_project('Project-Y') self.project_z = self.create_project('Project-Z') self.project_w = self.create_project('Project-W') # Setup organisations and partnerships self.org_a = self.create_organisation(name='Org-A') self.make_partner(self.project_x, self.org_a, Partnership.IATI_REPORTING_ORGANISATION) self.make_partner(self.project_y, self.org_a, Partnership.IATI_REPORTING_ORGANISATION) self.org_b = self.create_organisation(name='Org-B') self.make_partner(self.project_y, self.org_b, Partnership.IATI_IMPLEMENTING_PARTNER) self.make_partner(self.project_z, self.org_b, Partnership.IATI_REPORTING_ORGANISATION) self.org_aa = self.create_organisation(name='Org-AA', can_create_projects=False) self.make_partner(self.project_x, self.org_aa, Partnership.IATI_IMPLEMENTING_PARTNER) self.org_bb = self.create_organisation(name='Org-BB', can_create_projects=False) self.org_bb.content_owner = self.org_b self.org_bb.save() self.make_partner(self.project_w, self.org_bb, Partnership.IATI_REPORTING_ORGANISATION) # Setup users (employments are setup in tests) self.user_l = self.create_user('*****@*****.**') self.user_m = self.create_user('*****@*****.**') self.user_n = self.create_user('*****@*****.**') self.user_o = self.create_user('*****@*****.**') self.user_p = self.create_user('*****@*****.**')
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.org = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.user_password = '******' self.user = self._create_user('*****@*****.**', self.user_password) self.c.login(username=self.user.username, password=self.user_password) version = Version.objects.create(code=settings.IATI_VERSION) self.country = Country.objects.create( code='CI', name=u'CI - C\xc3\xb4te Divoire', version=version )
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.password = '******' self.user1 = self._create_user('*****@*****.**', self.password, is_admin=True) self.user2 = self._create_user('*****@*****.**', self.password, is_admin=True) self.org = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.c.login(username=self.user1.username, password=self.password) self.admin_group = Group.objects.get(name='Admins') self.user_group = Group.objects.get(name='Users')
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.admin_group = Group.objects.get(name='Admins') self.user_group = Group.objects.get(name='Users') self.username = '******' self.password = '******' self.org1 = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.org2 = Organisation.objects.create(name='icco', long_name='icco foundation') for org in (self.org1, self.org2): project = Project.objects.create() project.publishingstatus.status = 'published' project.publishingstatus.save() Partnership.objects.create(project=project, organisation=org) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.admin_group = Group.objects.get(name='Admins') self.user_group = Group.objects.get(name='Users') self.username = '******' self.password = '******' self.title = 'Admiral' self.first_name = 'John' self.last_name = 'Doe' self.org1 = Organisation.objects.create(name='akvo', long_name='akvo foundation') self.org2 = Organisation.objects.create(name='icco', long_name='icco foundation') for org in (self.org1, self.org2): project = Project.objects.create() project.publish() Partnership.objects.create(project=project, organisation=org) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
def setUp(self): """ Setup a minimal DB for the tests. """ self.project = Project.objects.create( title="REST test project", ) # Create groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create organisation self.reporting_org = Organisation.objects.create( id=1337, name="Test REST reporting", long_name="Test REST reporting org", new_organisation_type=22 ) # Create partnership self.partnership = Partnership.objects.create( project=self.project, organisation=self.reporting_org, iati_organisation_role=Partnership.IATI_REPORTING_ORGANISATION, ) # Create active user self.username = "******" self.password = "******" self.user = User.objects.create_user( username=self.username, email="*****@*****.**", password=self.password, ) self.user.is_active = True self.user.is_admin = True self.user.is_superuser = True self.user.save() # Create employment self.employment = Employment.objects.create( user=self.user, organisation=self.reporting_org, is_approved=True, ) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.setup_results_framework()
def setUp(self): """ User M User N User O \ / \ / \ / \ / Admins Users / \ / \ / \ / \ Org X Org Y Org Z """ # self.tearDown() check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.user_m = self.create_user('*****@*****.**') self.user_n = self.create_user('*****@*****.**') self.user_o = self.create_user('*****@*****.**') self.org_x = _create_organisation('X') self.org_y = _create_organisation('Y') self.org_z = _create_organisation('Z') self.admin_m_org_x = _create_employment(self.user_m, self.org_x, group='Admins') self.admin_m_org_y = _create_employment(self.user_m, self.org_y, group='Admins') self.admin_n_org_x = _create_employment(self.user_n, self.org_x, group='Admins') self.admin_n_org_y = _create_employment(self.user_n, self.org_y, group='Admins') self.user_n_org_y = _create_employment(self.user_n, self.org_y, group='Users') self.user_n_org_z = _create_employment(self.user_n, self.org_z, group='Users') self.user_o_org_z = _create_employment(self.user_o, self.org_z, group='Users')
def setUp(self): """Setup the database as required.""" # Create user auth groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.project = Project.objects.create( title="REST test project", ) # Create organisation self.reporting_org = Organisation.objects.create( id=1337, name="Test REST reporting", long_name="Test REST reporting org", new_organisation_type=22 ) Partnership.objects.create( project=self.project, organisation=self.reporting_org, iati_organisation_role=Partnership.IATI_REPORTING_ORGANISATION, ) location = ProjectLocation.objects.create(location_target=self.project) self.admin_location = AdministrativeLocation.objects.create(location=location) self.username = '******' self.password = '******' self.user = User.objects.create( username=self.username, email=self.username, is_active=True ) self.user.set_password(self.password) self.user.save() Employment.objects.create( user=self.user, organisation=self.reporting_org, group=Group.objects.get(name='Admins'), is_approved=True ) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
def create_employments(self): r""" User M User N User O \ / \ / \ / \ / Admins Users / \ / \ / \ / \ Org X Org Y Org Z """ check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.user_m = self.create_user('*****@*****.**') self.user_n = self.create_user('*****@*****.**') self.user_o = self.create_user('*****@*****.**') self.org_x = self.create_organisation('X') self.org_y = self.create_organisation('Y') self.org_z = self.create_organisation('Z') self.admin_m_org_x = self.make_employment(self.user_m, self.org_x, group_name='Admins') self.admin_m_org_y = self.make_employment(self.user_m, self.org_y, group_name='Admins') self.admin_n_org_x = self.make_employment(self.user_n, self.org_x, group_name='Admins') self.admin_n_org_y = self.make_employment(self.user_n, self.org_y, group_name='Admins') self.user_n_org_y = self.make_employment(self.user_n, self.org_y, group_name='Users') self.user_n_org_z = self.make_employment(self.user_n, self.org_z, group_name='Users') self.user_o_org_z = self.make_employment(self.user_o, self.org_z, group_name='Users')
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create organisation self.org = Organisation.objects.create(name='org', long_name='org') # Create three projects - two of which have the org as a partner self.projects = [] for i in range(3): project = Project.objects.create() self.projects.append(project) if i > 0: Partnership.objects.create(organisation=self.org, project=project) self.user = PermissionsTestCase.create_user('*****@*****.**') self.group = Group.objects.get(name='Users') Employment.objects.create( user=self.user, organisation=self.org, group=self.group, is_approved=True )
def setUp(self): # Create necessary groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create a validation set self.validation = ProjectEditorValidationSet.objects.create( name='test') # Create organisation self.reporting_org = Organisation.objects.create( id=1337, name="Test REST reporting", long_name="Test REST reporting org", new_organisation_type=22, can_create_projects=True, ) username = '******' password = '******' group = Group.objects.get(name='Admins') self.user = self.create_user(username, password, group, self.reporting_org) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN) self.c.login(username=username, password=password)
def setUpClass(cls): """Setup the DB with all the objects we require. The objects created here are the ones which have ViewSets that are subclassed from PublicProjectViewSet or that have some code for dealing with permissions for them in akvo.rsr.permissions """ # Prepend our messages to default messages. cls.longMessage = True cls.model_map = cls.populate_model_map() cls.ensure_model_map_populated(cls.model_map) # Setup Groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create a couple of organisations for name in ('Akvo', 'WASH Org'): M.Organisation.objects.create(name=name, long_name=name, can_create_projects=True) # Create a category category = M.Category.objects.create(name='category1') # Create users in each of the auth groups for all the orgs for organisation in M.Organisation.objects.all(): org_name = slugify(organisation.name) for group in Group.objects.all(): username = '******'.format(slugify(group.name), org_name) cls.create_user(username, group, organisation) # Create an admin (general RSR admin, usually only akvo employees) group = Group.objects.get(name='Admins') username = '******'.format(org_name) admin = cls.create_user(username, group, organisation, is_admin=True) # Create a superuser group = Group.objects.get(name='Admins') username = '******'.format(org_name) cls.create_user(username, group, organisation, is_superuser=True) # Create organisation indicator labels label = M.OrganisationIndicatorLabel.objects.create( organisation=organisation, label='label1') # Create Projects for project_name in ('Private project', 'Public project'): for status in (M.PublishingStatus.STATUS_PUBLISHED, M.PublishingStatus.STATUS_UNPUBLISHED): title = '{} - {} - {}'.format(project_name, organisation.name, status) is_public = False if 'private' in project_name.lower( ) else True project = M.Project.objects.create(title=title, is_public=is_public) cls.set_publishing_status(project, status) M.Partnership.objects.create( organisation=organisation, project=project, iati_organisation_role=M.Partnership. IATI_FUNDING_PARTNER) # Create ProjectHierarchy if status == M.PublishingStatus.STATUS_PUBLISHED: M.ProjectHierarchy.objects.create( organisation=organisation, root_project=project, max_depth=2) for project in organisation.all_projects().distinct(): # Per-project objects # benchmark benchmark_name = M.Benchmarkname.objects.create( name='benchmark_name') M.Benchmark.objects.create(project=project, name=benchmark_name, category=category, value=10) # budget M.BudgetItem.objects.create(project=project) M.CountryBudgetItem.objects.create(project=project) # crs crs = M.CrsAdd.objects.create(project=project) M.CrsAddOtherFlag.objects.create(crs=crs) # fss fss = M.Fss.objects.create(project=project) M.FssForecast.objects.create(fss=fss) # goal M.Goal.objects.create(project=project) # legacy data M.LegacyData.objects.create(project=project) # link M.Link.objects.create(project=project, url='akvo.org') # humanitarian scope M.HumanitarianScope.objects.create(project=project) # conditions M.ProjectCondition.objects.create(project=project, text='Condition {}'.format( project.title)) # contacts M.ProjectContact.objects.create(project=project) # custom fields M.ProjectCustomField.objects.create(project=project, section=1, order=4) # documents document = M.ProjectDocument.objects.create(project=project) # document categories M.ProjectDocumentCategory.objects.create(document=document, category='A') # recipient country and region M.RecipientCountry.objects.create(project=project) M.RecipientRegion.objects.create(project=project) # related project # # set other project from organisation as related project other_project = M.Project.objects.exclude( id__in=[project.id]).filter( partnerships__organisation=organisation, is_public=True).first() M.RelatedProject.objects.create(project=project, related_project=other_project) # planned disbursement M.PlannedDisbursement.objects.create(project=project) # policy marker M.PolicyMarker.objects.create(project=project) # sector M.Sector.objects.create(project=project) # transaction transaction = M.Transaction.objects.create(project=project) # transaction sector M.TransactionSector.objects.create(transaction=transaction) # iati export export = M.IatiExport.objects.create( reporting_organisation=organisation, user=admin) for project_ in organisation.projects.all(): export.projects.add(project_) # location location = M.ProjectLocation.objects.create( location_target=project, latitude=project.id, longitude=project.id) # administrative location M.AdministrativeLocation.objects.create(location=location) # result result = M.Result.objects.create(project=project) # indicator indicator = M.Indicator.objects.create(result=result) # default period # NOTE: Create default periods after indicators to prevent new # indicator periods from being created. M.DefaultPeriod.objects.create(project=project, period_start='2019-12-01', period_end='2020-12-01') # indicator dimension name and value dimension_name = M.IndicatorDimensionName.objects.create( project=project) dimension_value = M.IndicatorDimensionValue.objects.create( name=dimension_name) # indicator label M.IndicatorLabel.objects.create(indicator=indicator, label=label) # indicator reference M.IndicatorReference.objects.create(indicator=indicator) # indicator period period = M.IndicatorPeriod.objects.create(indicator=indicator) # indicator period actual location M.IndicatorPeriodActualLocation.objects.create(period=period) # indicator period target location M.IndicatorPeriodTargetLocation.objects.create(period=period) # narrative report M.NarrativeReport.objects.create(period_start="2017-10-01", period_end="2017-12-01", category=label, project=project) # Per-project per-user objects for user in organisation.all_users(): title = '{}: {}'.format(user.username, project.title) # disaggregation target M.IndicatorDisaggregationTarget.objects.create( indicator=indicator, dimension_value=dimension_value, value=0) M.DisaggregationTarget.objects.create( period=period, dimension_value=dimension_value, value=0) # updates update = M.ProjectUpdate.objects.create(project=project, user=user, title=title) # update location M.ProjectUpdateLocation.objects.create( location_target=update, latitude=update.id, longitude=update.id) # indicator period data data = M.IndicatorPeriodData.objects.create(period=period, user=user) # disaggregation M.Disaggregation.objects.create( update=data, dimension_value=dimension_value) # indicator period data comment M.IndicatorPeriodDataComment.objects.create(data=data, user=user) # PartnerSite M.PartnerSite.objects.create(organisation=organisation, hostname='{}.org'.format(org_name))
def populate_test_data(seed=42): """Populate the DB for tests using the factories defined.""" reseed_random(seed) random.seed(seed) check_auth_groups(settings.REQUIRED_AUTH_GROUPS) UserFactory.create(is_admin=True, is_superuser=True, is_staff=True) UserFactory.create_batch(4) OrganisationFactory.create_batch(3) OrganisationCustomFieldFactory.create_batch(9) ProjectFactory.create_batch(10) RecipientCountryFactory.create_batch(10) CrsAddFactory.create_batch(10) FssFactory.create_batch(10) PartnershipFactory.create_batch(10) ProjectCustomFieldFactory.create_batch(20) ProjectCommentFactory.create_batch(20) RelatedProjectFactory.create_batch(10) ProjectUpdateFactory.create_batch(100) ResultFactory.create_batch(40) IndicatorFactory.create_batch(80) IndicatorReferenceFactory.create_batch(80) IndicatorPeriodFactory.create_batch(240) IndicatorPeriodActualDimensionFactory.create_batch(240) IndicatorPeriodTargetDimensionFactory.create_batch(240) IndicatorPeriodActualLocationFactory.create_batch(240) IndicatorPeriodTargetLocationFactory.create_batch(240) IndicatorPeriodDataFactory.create_batch(1200) IndicatorPeriodDataCommentFactory.create_batch(1200) IatiExportFactory.create_batch(3) IatiImportFactory.create_batch(3) for _ in range(10): created = False while not created: country_code = random.choice(ISO_3166_COUNTRIES)[0] country_info = Country.fields_from_iso_code(country_code) country, created = Country.objects.get_or_create(**country_info) EmploymentFactory.create_batch(30) KeywordFactory.create_batch(20) for keyword in Keyword.objects.all(): for project in Project.objects.all(): if keyword.id % project.id != 0: continue project.keywords.add(keyword) ProjectEditorValidationSetFactory.create_batch(2) ProjectEditorValidationFactory.create_batch(20) ReportFormatFactory.create_batch(4) ReportFactory.create_batch(4) # FIXME: Enforce this! verify_model_instances()
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.c = Client(HTTP_HOST=settings.RSR_DOMAIN)
widget_views.RandomProjectNarrowView.as_view(), name="widget_random_project_narrow"), url(r'^widgets/project-small/(?P<project_id>\d+)/$', widget_views.ProjectSmallView.as_view(), name="widget_project_small"), url(r'^widgets/project-small/random/$', widget_views.RandomProjectSmallView.as_view(), name="widget_random_project_small"), ) handler500 = 'akvo.rsr.views.error.server_error' urlpatterns += patterns( '', (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.MEDIA_ROOT }), ) if 'rosetta' in settings.INSTALLED_APPS: urlpatterns += patterns( '', url(r'^rosetta/', include('rosetta.urls')), ) if settings.DEBUG: urlpatterns += staticfiles_urlpatterns() if settings.REQUIRED_AUTH_GROUPS: check_auth_groups(settings.REQUIRED_AUTH_GROUPS)
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create organisations self.orgs = [ Organisation.objects.create(name='org-{}'.format(i), long_name='org-{}'.format(i)) for i in range(2) ] # Create one Project per organisation self.projects = [] for org in self.orgs: project = Project.objects.create() Partnership.objects.create(organisation=org, project=project) self.projects.append(project) # PartnerSite self.partner_sites = [ PartnerSite.objects.create(organisation=org, hostname=org.name, piwik_id=0) for org in self.orgs ] # Create users, one "normal" user per organisation self.users = [] self.iati_exports = [] group = Group.objects.get(name='Users') for i, org in enumerate(self.orgs): user = self.create_user('user@org-{}.org'.format(i)) Employment.objects.create(user=user, organisation=org, group=group, is_approved=True) self.users.append(user) iati_export = IatiExport.objects.create(reporting_organisation=org, user=user) self.iati_exports.append(iati_export) # For each user create a project update self.project_updates = [ ProjectUpdate.objects.create(user=user_, project=project_) for (project_, user_) in zip(self.projects, self.users) ] # Results self.results = [ Result.objects.create(project=project_) for project_ in self.projects ] # Indicators self.indicators = [ Indicator.objects.create(result=result) for result in self.results ] # Indicator periods self.indicator_periods = [ IndicatorPeriod.objects.create(indicator=indicator) for indicator in self.indicators ] # Indicator updates self.indicator_updates = [ IndicatorPeriodData.objects.create(period=period, user=self.users[i]) for i, period in enumerate(self.indicator_periods) ] # Indicator update comments self.indicator_update_comments = [ IndicatorPeriodDataComment.objects.create(data=update, user=self.users[i]) for i, update in enumerate(self.indicator_updates) ] # Project locations self.project_locations = [ ProjectLocation.objects.create(location_target=project_) for project_ in self.projects ] # Administrative locations self.admin_locations = [ AdministrativeLocation.objects.create(location=location) for location in self.project_locations ] # Organisation locations self.org_locations = [ OrganisationLocation.objects.create(location_target=org) for org in self.orgs ]
def setUpClass(cls): """Setup the DB with all the objects we require. The objects created here are the ones which have ViewSets that are subclassed from PublicProjectViewSet or that have some code for dealing with permissions for them in akvo.rsr.permissions """ # Prepend our messages to default messages. cls.longMessage = True cls.model_map = cls.populate_model_map() cls.ensure_model_map_populated(cls.model_map) # Setup Groups check_auth_groups(settings.REQUIRED_AUTH_GROUPS) # Create a couple of organisations for name in ('Akvo', 'WASH Org'): M.Organisation.objects.create(name=name, long_name=name, can_create_projects=True) # Create a category category = M.Category.objects.create(name='category1') # Create users in each of the auth groups for all the orgs for organisation in M.Organisation.objects.all(): org_name = slugify(organisation.name) for group in Group.objects.all(): username = '******'.format(slugify(group.name), org_name) cls.create_user(username, group, organisation) # Create an admin (general RSR admin, usually only akvo employees) group = Group.objects.get(name='Admins') username = '******'.format(org_name) admin = cls.create_user(username, group, organisation, is_admin=True) # Create a superuser group = Group.objects.get(name='Admins') username = '******'.format(org_name) cls.create_user(username, group, organisation, is_superuser=True) # Create organisation indicator labels label = M.OrganisationIndicatorLabel.objects.create( organisation=organisation, label=u'label1' ) # Create Projects for project_name in ('Private project', 'Public project'): for status in (M.PublishingStatus.STATUS_PUBLISHED, M.PublishingStatus.STATUS_UNPUBLISHED): title = '{} - {} - {}'.format(project_name, organisation.name, status) is_public = False if 'private' in project_name.lower() else True project = M.Project.objects.create(title=title, is_public=is_public) cls.set_publishing_status(project, status) M.Partnership.objects.create(organisation=organisation, project=project, iati_organisation_role=M.Partnership.IATI_FUNDING_PARTNER) for project in organisation.all_projects().distinct(): # Per-project objects # benchmark benchmark_name = M.Benchmarkname.objects.create(name='benchmark_name') M.Benchmark.objects.create(project=project, name=benchmark_name, category=category, value=10) # budget M.BudgetItem.objects.create(project=project) M.CountryBudgetItem.objects.create(project=project) # crs crs = M.CrsAdd.objects.create(project=project) M.CrsAddOtherFlag.objects.create(crs=crs) # fss fss = M.Fss.objects.create(project=project) M.FssForecast.objects.create(fss=fss) # goal M.Goal.objects.create(project=project) # legacy data M.LegacyData.objects.create(project=project) # link M.Link.objects.create(project=project, url='akvo.org') # humanitarian scope M.HumanitarianScope.objects.create(project=project) # conditions M.ProjectCondition.objects.create(project=project, text='Condition {}'.format(project.title)) # contacts M.ProjectContact.objects.create(project=project) # custom fields M.ProjectCustomField.objects.create(project=project, section=1, order=4) # documents document = M.ProjectDocument.objects.create(project=project) # document categories M.ProjectDocumentCategory.objects.create(document=document, category='A') # recipient country and region M.RecipientCountry.objects.create(project=project) M.RecipientRegion.objects.create(project=project) # related project # # set other project from organisation as related project other_project = M.Project.objects.exclude(id__in=[project.id]).filter( partnerships__organisation=organisation, is_public=True ).first() M.RelatedProject.objects.create(project=project, related_project=other_project) # planned disbursement M.PlannedDisbursement.objects.create(project=project) # policy marker M.PolicyMarker.objects.create(project=project) # sector M.Sector.objects.create(project=project) # transaction transaction = M.Transaction.objects.create(project=project) # transaction sector M.TransactionSector.objects.create(transaction=transaction) # iati export export = M.IatiExport.objects.create(reporting_organisation=organisation, user=admin) for project_ in organisation.projects.all(): export.projects.add(project_) # location location = M.ProjectLocation.objects.create(location_target=project, latitude=project.id, longitude=project.id) # administrative location M.AdministrativeLocation.objects.create(location=location) # result result = M.Result.objects.create(project=project) # indicator indicator = M.Indicator.objects.create(result=result) # indicator dimension dimension = M.IndicatorDimension.objects.create(indicator=indicator) # indicator label M.IndicatorLabel.objects.create(indicator=indicator, label=label) # indicator reference M.IndicatorReference.objects.create(indicator=indicator) # indicator period period = M.IndicatorPeriod.objects.create(indicator=indicator) # indicator period actual dimension M.IndicatorPeriodActualDimension.objects.create(period=period) # indicator period actual location M.IndicatorPeriodActualLocation.objects.create(period=period) # indicator period target dimension M.IndicatorPeriodTargetDimension.objects.create(period=period) # indicator period target location M.IndicatorPeriodTargetLocation.objects.create(period=period) # narrative report M.NarrativeReport.objects.create(period_start="2017-10-01", period_end="2017-12-01", category=label, project=project) # Per-project per-user objects for user in organisation.all_users(): title = '{}: {}'.format(user.username, project.title) # updates update = M.ProjectUpdate.objects.create(project=project, user=user, title=title) # update location M.ProjectUpdateLocation.objects.create(location_target=update, latitude=update.id, longitude=update.id) # indicator period data data = M.IndicatorPeriodData.objects.create(period=period, user=user) # disaggregation M.Disaggregation.objects.create(update=data, dimension=dimension) # indicator period data comment M.IndicatorPeriodDataComment.objects.create(data=data, user=user) # comments M.ProjectComment.objects.create(project=project, user=user) # PartnerSite M.PartnerSite.objects.create(organisation=organisation, piwik_id=0, hostname='{}.org'.format(org_name))
def setUp(self): check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.user = self.create_user('*****@*****.**') self.org = self.create_organisation('My Organisation') self.project = self.create_project('My Project') self.make_partner(self.project, self.org, role=Partnership.IATI_REPORTING_ORGANISATION)
url(r'^widgets/project-small/(?P<project_id>\d+)/$', widget_views.ProjectSmallView.as_view(), name="widget_project_small"), url(r'^widgets/project-small/random/$', widget_views.RandomProjectSmallView.as_view(), name="widget_random_project_small"), ) handler500 = 'akvo.rsr.views.error.server_error' urlpatterns += patterns( '', (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), ) if 'rosetta' in settings.INSTALLED_APPS: urlpatterns += patterns( '', url(r'^rosetta/', include('rosetta.urls')), ) if settings.DEBUG: urlpatterns += staticfiles_urlpatterns() if settings.REQUIRED_AUTH_GROUPS: check_auth_groups(settings.REQUIRED_AUTH_GROUPS)
def setUp(self): """ User M User N User O Admin Admin User \ / \ / \ / \ / Org A Org B / \ / \ / \ / \ Project X Project Y Project Z """ check_auth_groups(settings.REQUIRED_AUTH_GROUPS) self.org_a = Organisation.objects.create(name='A', long_name='A', can_create_projects=True, enable_restrictions=True) self.org_b = Organisation.objects.create(name='B', long_name='B', can_create_projects=True, enable_restrictions=True) self.projects = {} for title in "XYZ": project = Project.objects.create(title=title) self.projects[title] = project Partnership.objects.create(organisation=self.org_a, project=self.projects['X']) Partnership.objects.create(organisation=self.org_a, project=self.projects['Y']) Partnership.objects.create(organisation=self.org_b, project=self.projects['Y']) Partnership.objects.create(organisation=self.org_b, project=self.projects['Z']) self.user_m = self.create_user('*****@*****.**') self.user_n = self.create_user('*****@*****.**') self.user_o = self.create_user('*****@*****.**') self.users = Group.objects.get(name='Users') self.admins = Group.objects.get(name='Admins') Employment.objects.create(user=self.user_m, organisation=self.org_a, group=self.admins, is_approved=True) # Primary organisation for user is org B Employment.objects.create(user=self.user_n, organisation=self.org_b, group=self.admins, is_approved=True) Employment.objects.create(user=self.user_n, organisation=self.org_a, group=self.admins, is_approved=True) Employment.objects.create(user=self.user_o, organisation=self.org_b, group=self.users, is_approved=True)