Ejemplo n.º 1
0
def _create_commtrack_config_if_needed(domain):
    if CommtrackConfig.for_domain(domain):
        return

    CommtrackConfig(
        domain=domain,
        actions=[
            CommtrackActionConfig(
                action='receipts',
                keyword='r',
                caption='Received',
            ),
            CommtrackActionConfig(
                action='consumption',
                keyword='c',
                caption='Consumed',
            ),
            CommtrackActionConfig(
                action='consumption',
                subaction='loss',
                keyword='l',
                caption='Losses',
            ),
            CommtrackActionConfig(
                action='stockonhand',
                keyword='soh',
                caption='Stock on hand',
            ),
            CommtrackActionConfig(
                action='stockout',
                keyword='so',
                caption='Stock-out',
            ),
        ],
    ).save()
 def test_report_with_exclude_disabled(self):
     commtrack_config = CommtrackConfig(domain=self.domain.name)
     commtrack_config.consumption_config = ConsumptionConfig()
     commtrack_config.save()
     self.create_transactions(self.domain.name)
     self.assertEqual(StockTransaction.objects.all().count(), 3)
     self.assertEqual(StockTransaction.objects.filter(type='receipts').count(), 1)
     commtrack_config.delete()
Ejemplo n.º 3
0
 def setUp(self):
     self.endpoint = MockEndpoint('http://test-api.com/', 'dummy', 'dummy')
     self.api_object = ILSGatewayAPI(TEST_DOMAIN, self.endpoint)
     self.datapath = os.path.join(os.path.dirname(__file__), 'data')
     domain = initial_bootstrap(TEST_DOMAIN)
     CommtrackConfig(domain=domain.name).save()
     self.api_object.prepare_commtrack_config()
     for location in Location.by_domain(TEST_DOMAIN):
         location.delete()
Ejemplo n.º 4
0
def bootstrap_commtrack_settings_if_necessary(domain, requisitions_enabled=False):
    if not(domain and domain.commtrack_enabled and not CommtrackConfig.for_domain(domain.name)):
        return

    c = CommtrackConfig(
        domain=domain.name,
        multiaction_enabled=True,
        multiaction_keyword='report',
        actions=[
            CommtrackActionConfig(
                action='receipts',
                keyword='r',
                caption='Received',
            ),
            CommtrackActionConfig(
                action='consumption',
                keyword='c',
                caption='Consumed',
            ),
            CommtrackActionConfig(
                action='consumption',
                subaction='loss',
                keyword='l',
                caption='Losses',
            ),
            CommtrackActionConfig(
                action='stockonhand',
                keyword='soh',
                caption='Stock on hand',
            ),
            CommtrackActionConfig(
                action='stockout',
                keyword='so',
                caption='Stock-out',
            ),
        ],
        location_types=[
            LocationType(name='state', allowed_parents=[''], administrative=True),
            LocationType(name='district', allowed_parents=['state'], administrative=True),
            LocationType(name='block', allowed_parents=['district'], administrative=True),
            LocationType(name='village', allowed_parents=['block'], administrative=True),
            LocationType(name='outlet', allowed_parents=['block', 'village']),
        ],
        supply_point_types=[],
    )
    if requisitions_enabled:
        c.requisition_config = get_default_requisition_config()

    c.save()

    program = make_program(domain.name, 'Default', 'def')
    make_product(domain.name, 'Sample Product 1', 'pp', program.get_id)
    make_product(domain.name, 'Sample Product 2', 'pq', program.get_id)
    make_product(domain.name, 'Sample Product 3', 'pr', program.get_id)

    return c
Ejemplo n.º 5
0
 def test_get_docs_in_domain_by_class(self):
     commtrack_config = CommtrackConfig(domain=self.domain)
     group = Group(domain=self.domain)
     xform = XFormInstance(domain=self.domain)
     commtrack_config.save()
     group.save()
     xform.save()
     self.addCleanup(commtrack_config.delete)
     self.addCleanup(group.delete)
     self.addCleanup(xform.delete)
     [commtrack_config_2] = get_docs_in_domain_by_class(self.domain, CommtrackConfig)
     self.assertEqual(commtrack_config_2.to_json(), commtrack_config.to_json())
Ejemplo n.º 6
0
def make_psi_config(domain):
    c = CommtrackConfig(domain=domain,
                        multiaction_enabled=True,
                        multiaction_keyword='s',
                        actions=[
                            CommtrackActionConfig(action_type='stockedoutfor',
                                                  keyword='d',
                                                  caption='Stock-out Days'),
                            CommtrackActionConfig(action_type='receipts',
                                                  keyword='r',
                                                  caption='Other Receipts'),
                            CommtrackActionConfig(action_type='stockonhand',
                                                  keyword='b',
                                                  caption='Balance'),
                            CommtrackActionConfig(action_type='receipts',
                                                  name='sales',
                                                  keyword='p',
                                                  caption='Placements'),
                        ],
                        supply_point_types=[
                            SupplyPointType(name='CHC', categories=['Public']),
                            SupplyPointType(name='PHC', categories=['Public']),
                            SupplyPointType(name='SC', categories=['Public']),
                            SupplyPointType(name='MBBS',
                                            categories=['Private']),
                            SupplyPointType(name='Pediatrician',
                                            categories=['Private']),
                            SupplyPointType(name='AYUSH',
                                            categories=['Private']),
                            SupplyPointType(name='Medical Store / Chemist',
                                            categories=['Traditional']),
                            SupplyPointType(name='RP',
                                            categories=['Traditional']),
                            SupplyPointType(name='Asha',
                                            categories=['Frontline Workers']),
                            SupplyPointType(
                                name='AWW',
                                categories=['Public', 'Frontline Workers']),
                            SupplyPointType(name='NGO',
                                            categories=['Non-traditional']),
                            SupplyPointType(name='CBO',
                                            categories=['Non-traditional']),
                            SupplyPointType(name='SHG',
                                            categories=['Non-traditional']),
                            SupplyPointType(name='Pan Store',
                                            categories=['Traditional']),
                            SupplyPointType(name='General Store',
                                            categories=['Traditional']),
                        ])
    c.save()
    return c
 def _create_unsynced_couch(self):
     """
         Create a CommtrackConfig matching the one created by _create_unsynced_sql
     """
     couch = CommtrackConfig(
         domain='my_project',
         use_auto_emergency_levels=False,
         sync_consumption_fixtures=False,
         use_auto_consumption=False,
         individual_consumption_defaults=True,
         ota_restore_config=StockRestoreConfig(
             section_to_consumption_types={'s1': 'c1'},
             force_consumption_case_types=['type1'],
             use_dynamic_product_list=True,
         ),
         alert_config=AlertConfig(
             stock_out_facilities=True,
             stock_out_commodities=True,
             stock_out_rates=True,
             non_report=True,
         ),
         actions=[
             CommtrackActionConfig(
                 action='receipts',
                 subaction='sub-receipts',
                 _keyword='one',
                 caption='first action',
             ),
             CommtrackActionConfig(
                 action='receipts',
                 subaction='sub-receipts',
                 _keyword='two',
                 caption='second action',
             ),
         ],
         consumption_config=ConsumptionConfig(
             min_transactions=1,
             min_window=2,
             optimal_window=3,
             use_supply_point_type_default_consumption=True,
             exclude_invalid_periods=False,
         ),
         stock_levels_config=StockLevelsConfig(
             emergency_level=0.5,
             understock_threshold=1.5,
             overstock_threshold=3,
         )
     )
     couch.save(sync_to_sql=False)
     return couch
Ejemplo n.º 8
0
def _create_commtrack_config_if_needed(domain):
    if CommtrackConfig.for_domain(domain):
        return

    config = CommtrackConfig(domain=domain)
    config.save()  # must be saved before submodels can be saved

    AlertConfig(commtrack_config=config).save()
    ConsumptionConfig(commtrack_config=config).save()
    StockLevelsConfig(commtrack_config=config).save()
    StockRestoreConfig(commtrack_config=config).save()
    config.set_actions([
        ActionConfig(
            action='receipts',
            keyword='r',
            caption='Received',
        ),
        ActionConfig(
            action='consumption',
            keyword='c',
            caption='Consumed',
        ),
        ActionConfig(
            action='consumption',
            subaction='loss',
            keyword='l',
            caption='Losses',
        ),
        ActionConfig(
            action='stockonhand',
            keyword='soh',
            caption='Stock on hand',
        ),
        ActionConfig(
            action='stockout',
            keyword='so',
            caption='Stock-out',
        ),
    ])
    config.save()  # save actions, and sync couch
Ejemplo n.º 9
0
 def test_delete_commtrack_config(self):
     CommtrackConfig(domain=self.domain.name).save()
     self.domain.delete()
     self.assertEqual(
         len(get_docs_in_domain_by_class(self.domain.name,
                                         CommtrackConfig)), 0)