def build(self): if not entity_type_already_defined(self._manager, self._entity_type): define_type(self._manager, self._entity_type) entity = self.create_or_update_entity(self._manager, entity_type=self._entity_type, short_code=self._short_code, aggregation_paths=self._aggregation_paths, location=self._location, geometry=self._geometry) for each in self._data: entity.add_data(each) return entity
def validate_for_subject(dbm, subject_type, subject_short_code, start_date=None, end_date=None): result = DataExtractionResult() if not entity_type_already_defined(dbm, [subject_type]): result.success = False result.message = _("Subject type [%s] is not defined.") % subject_type return result if not check_if_subject_exists(dbm, subject_short_code, [subject_type]): result.success = False result.message = _("Subject [%s] is not registered.") % subject_short_code return result result = validate_date(result, start_date, end_date) if not result.success: return result return result
def create_contact(dbm, short_code, location=None, aggregation_paths=None, geometry=None, is_datasender=True): """ Initialize and save an entity to the database. Return the entity created unless the short code used is not unique or this entity type has not been defined yet. """ contact_type = ["reporter"] assert is_string(short_code) and not is_empty(short_code) if not entity_type_already_defined(dbm, contact_type): raise EntityTypeDoesNotExistsException(contact_type) existing = _check_if_entity_exists(dbm, contact_type, short_code, return_entity=True) if existing: entity_name = existing.data.get('name', {'value': ''}).get('value') raise DataObjectAlreadyExists(contact_type[0].capitalize(), "Unique ID Number", short_code, existing_name=entity_name) e = Contact(dbm, entity_type=contact_type, location=location, aggregation_paths=aggregation_paths, short_code=short_code, geometry=geometry, is_datasender=is_datasender) #e.save() return e
def create_type(request): success = False form = EntityTypeForm(request.POST) if form.is_valid(): entity_name = form.cleaned_data["entity_type_regex"] entity_name = [entity_name.strip().lower()] try: manager = get_database_manager(request.user) if entity_type_already_defined(manager, entity_name): raise EntityTypeAlreadyDefined(u"Type: %s is already defined" % u'.'.join(entity_name)) create_registration_form(manager, entity_name) define_type(manager, entity_name) message = _("Entity definition successful") success = True UserActivityLog().log(request, action=ADDED_IDENTIFICATION_NUMBER_TYPE, project=entity_name[0].capitalize()) except EntityTypeAlreadyDefined: message = _("%s already exists.") % (entity_name[0].capitalize(),) else: message = form.errors['entity_type_regex'] return HttpResponse(json.dumps({'success': success, 'message': _(message)}))
def create_reporter_id_for_profile(dbm, org, profile): phone = profile.mobile_phone if profile.mobile_phone and profile.mobile_phone != "Not Assigned" else None if profile.reporter_id is None and entity_type_already_defined(dbm, REPORTER_ENTITY_TYPE): profile.reporter_id = _create_couchdb_datasender(dbm, org, profile.user.get_full_name(), phone) profile.save()
def validate_unique_id_type(self, field): unique_id_type = self._get_unique_id_type(field) if not entity_type_already_defined(self.dbm, [unique_id_type]): raise UniqueIdNotFoundException(unique_id_type) if not get_non_voided_entity_count_for_type(self.dbm, unique_id_type.lower()): raise UniqueIdNumbersNotFoundException(unique_id_type)