Ejemplo n.º 1
0
    def parse(self):
        # references to same objects
        self.object_dict = {}
        self.errors = []
        self.warnings = []

        # == Controle ==
        helpers.set_controle(self)

        # == Nome ==
        if self.row_dict['Nome']['Detalhe'] and \
           self.row_dict['Nome']['Nome da comunidade']:
            self.object_dict['name'] = '{} ({})' \
                    .format(self.row_dict['Nome']['Nome da comunidade'],
                            self.row_dict['Nome']['Detalhe'])
        else:
            self.object_dict['name'] = self.row_dict['Nome'][
                'Nome da comunidade']

        # == População ==
        if self.row_dict['População']:
            try:
                self.object_dict['population'] = int(
                    self.row_dict['População'])
            except:
                msg = 'População inválida: {} não é um número inteiro.' \
                            .format(self.row_dict['População'])
                self.errors.append(msg)

        # == Descrição ==
        helpers.set_descricao(self)

        # == Geometria ==
        helpers.set_geometria(self)
        if not self.object_dict.get('geometry', None):
            msg = 'Comunidades devem ter uma geometria definida.'
            self.errors.append(msg)

        # == Palavras-chave ==
        helpers.set_tags(self)

        # Duplicates
        # TODO: inexact title search for warnings
        # TODO: use georef to enhance matches
        q = Community.objects.filter(name=self.object_dict['name'])
        if q.exists():
            obj = q[0]
            self.errors.append('Já existe uma comunidade com este nome. (ID: {0})'\
                    .format(obj.id))

        # Missing Values
        if not self.object_dict['name']:
            self.errors.append(
                'Coluna "Nome dacomunidade" não pode estar vazia.')
        if not self.object_dict['description']:
            self.errors.append('Coluna "Descrição" não pode estar vazia.')
Ejemplo n.º 2
0
    def parse(self):
        # references to same objects
        self.object_dict = {}
        self.errors = []
        self.warnings = []

        # == Controle ==
        helpers.set_controle(self)

        # == Nome ==
        if self.row_dict['Nome']['Detalhe'] and \
           self.row_dict['Nome']['Nome da comunidade']:
            self.object_dict['name'] = '{} ({})' \
                    .format(self.row_dict['Nome']['Nome da comunidade'],
                            self.row_dict['Nome']['Detalhe'])
        else:
            self.object_dict['name'] = self.row_dict['Nome']['Nome da comunidade']

        # == População ==
        if self.row_dict['População']:
            try:
                self.object_dict['population'] = int(self.row_dict['População'])
            except:
                msg = 'População inválida: {} não é um número inteiro.' \
                            .format(self.row_dict['População'])
                self.errors.append(msg)

        # == Descrição ==
        helpers.set_descricao(self)

        # == Geometria ==
        helpers.set_geometria(self)
        if not self.object_dict.get('geometry', None):
            msg = 'Comunidades devem ter uma geometria definida.'
            self.errors.append(msg)

        # == Palavras-chave ==
        helpers.set_tags(self)

        # Duplicates
        # TODO: inexact title search for warnings
        # TODO: use georef to enhance matches
        q = Community.objects.filter(name=self.object_dict['name'])
        if q.exists():
            obj = q[0]
            self.errors.append('Já existe uma comunidade com este nome. (ID: {0})'\
                    .format(obj.id))

        # Missing Values
        if not self.object_dict['name']:
            self.errors.append('Coluna "Nome dacomunidade" não pode estar vazia.')
        if not self.object_dict['description']:
            self.errors.append('Coluna "Descrição" não pode estar vazia.')
Ejemplo n.º 3
0
    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.')
Ejemplo n.º 4
0
    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.')
Ejemplo n.º 5
0
    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.')
Ejemplo n.º 6
0
    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.')