def parse(self): # references to same objects rd = self.row_dict od = self.object_dict = {} self.errors = [] self.warnings = [] # == Controle == helpers.set_controle(self) # == Nome == if self.row_dict['Nome']['Sigla'] and \ self.row_dict['Nome']['Nome do recurso']: self.object_dict['name'] = '{} - {}' \ .format(self.row_dict['Nome']['Nome do recurso'], self.row_dict['Nome']['Sigla']) else: self.object_dict['name'] = self.row_dict['Nome']['Nome do recurso'] # == Contato == helpers.set_contato(self) # == Descrição == helpers.set_descricao(self) # == Comunidades == helpers.set_comunidades(self) # == Tipo == od['kind'] = rd['Tipo'] # == Geometria == helpers.set_geometria(self) # == Palavras-chave == helpers.set_tags(self) # Duplicates # TODO: inexact title search for warnings # TODO: use georef to enhance matches q = Resource.objects.filter(name=od['name']) if q.exists(): obj = q[0] self.errors.append('Já existe um recurso com este nome. (ID: {0})'\ .format(obj.id)) # Missing Values if not od['name']: self.errors.append( 'Coluna "Nome do recurso" não pode estar vazia.') if not od['description']: self.errors.append('Coluna "Descrição" não pode estar vazia.')
def parse(self): # references to same objects rd = self.row_dict od = self.object_dict = {} self.errors = [] self.warnings = [] # == Controle == helpers.set_controle(self) # == Nome == if self.row_dict['Nome']['Sigla'] and \ self.row_dict['Nome']['Nome do recurso']: self.object_dict['name'] = '{} - {}' \ .format(self.row_dict['Nome']['Nome do recurso'], self.row_dict['Nome']['Sigla']) else: self.object_dict['name'] = self.row_dict['Nome']['Nome do recurso'] # == Contato == helpers.set_contato(self) # == Descrição == helpers.set_descricao(self) # == Comunidades == helpers.set_comunidades(self) # == Tipo == od['kind'] = rd['Tipo'] # == Geometria == helpers.set_geometria(self) # == Palavras-chave == helpers.set_tags(self) # Duplicates # TODO: inexact title search for warnings # TODO: use georef to enhance matches q = Resource.objects.filter(name=od['name']) if q.exists(): obj = q[0] self.errors.append('Já existe um recurso com este nome. (ID: {0})'\ .format(obj.id)) # Missing Values if not od['name']: self.errors.append('Coluna "Nome do recurso" não pode estar vazia.') if not od['description']: self.errors.append('Coluna "Descrição" não pode estar vazia.')
def parse(self): # references to same objects rd = self.row_dict od = self.object_dict = {} self.errors = [] self.warnings = [] # == Controle == helpers.set_controle(self) # == Nome == if self.row_dict['Nome']['Sigla'] and \ self.row_dict['Nome']['Nome da organização']: self.object_dict['name'] = '{} - {}' \ .format(self.row_dict['Nome']['Nome da organização'], self.row_dict['Nome']['Sigla']) else: self.object_dict['name'] = self.row_dict['Nome']['Nome da organização'] # == Contato == helpers.set_contato(self) self.object_dict['link'] = self.row_dict['Contato']['Website'] # == Descrição == helpers.set_descricao(self) # == Comunidades == helpers.set_comunidades(self) # == Geometria == helpers.set_geometria(self) # == Palavras-chave == helpers.set_tags(self) # == Categorias == provided = set(filter(bool, rd['Categorias'].values())) valid = OrganizationCategoryTranslation.objects.filter(name__in=provided) valid = set([c.name for c in valid]) invalid = provided - valid if invalid: msg = _('Invalid categories: ') + ', '.join(invalid) self.errors.append(msg) od['categories'] = valid # == Públicos-alvo == od['target_audiences'] = filter(bool, rd['Públicos-alvo'].values()) # TODO: put similar target audiences in the warnings dict # Duplicates # TODO: inexact title search for warnings # TODO: use georef to enhance matches q = Organization.objects.filter(name=od['name']) if q.exists(): obj = q[0] self.errors.append('Já existe uma organização com este nome. '\ ' (ID: {0})'.format(obj.id)) # Missing Values if not od['name']: self.errors.append('Coluna "Nome da organização" não pode estar vazia.') if not od['description']: self.errors.append('Coluna "Descrição" não pode estar vazia.')