Beispiel #1
0
    def collection_importer():
        data = read_file(FILENAME)
        for item in data:
            if item['language'] is not None and item['language'] != '':
                language = Language.objects.filter(code=item['language'])
                if language.exists():
                    lang = Language.objects.get(code=item['language'])
                else:
                    lang = None
            else:
                lang = None

            if item['type_of_resource'] is not None and item['type_of_resource'] != '':
                type_of_resource = ResourceType.objects.filter(name=item['type_of_resource'])
                if type_of_resource.exists():
                    res_type = ResourceType.objects.get(name=item['type_of_resource'])
                else:
                    res_type = None
            else:
                res_type = None

            content_manager = User.objects.get(username='******')
            tagging_person = User.objects.get(username='******')

            resource = Resource(
                title=item['title'] if 'title' != '' else 'None',
                short_title=item['shortTitle'],
                abstract=item['abstract'],
                authors=convert_authors(item['authors']),
                year_of_publication=convert_year(item['year']),
                doi=item['doi'],
                language=lang,
                type_of_resource=res_type,
                url=item['url'],
                resource_file=None,
                added_by=content_manager,
            )
            resource.save()
            res = Resource.objects.get(id=resource.id)
            res.tagging_persons.add(tagging_person.id)

            res_status = ResourceStatus(
                resource_id=resource.id,
                waiting_for_tagging=True,
                status_description='Waiting for tagging'
            )
            res_status.save()

            tagging_res = TaggingResource(
                resource_id=resource.id
            )
            tagging_res.save()

            print('Resource has been added!')
        
        print('DONE!')
    def response_change(self, request, obj):
        if "_save" in request.POST:
            if obj.added_by is None or obj.added_by == '':
                obj.added_by = request.user
            resource = Resource.objects.get(id=obj.pk)

            check_tagging_resource = TaggingResource.objects.filter(
                resource=resource)
            if not check_tagging_resource.exists():
                TaggingResource(resource=resource).save()

            check_resource_status = ResourceStatus.objects.filter(
                resource=resource)
            if not check_resource_status.exists():
                ResourceStatus(
                    resource=resource,
                    waiting_for_tagging=True,
                    status_description='Waiting for tagging').save()

        if "_approve" in request.POST:
            resource = Resource.objects.get(id=obj.pk)

            check_tagging_resource = TaggingResource.objects.filter(
                resource=resource)
            if not check_tagging_resource.exists():
                TaggingResource(resource=resource).save()

            check_resource_status = ResourceStatus.objects.filter(
                resource=resource)
            if not check_resource_status.exists():
                ResourceStatus(
                    resource=resource,
                    waiting_for_tagging=True,
                    status_description='Waiting for tagging').save()
            else:
                resource_status = ResourceStatus.objects.get(resource=resource)
                resource_status.waiting_for_tagging = False
                resource_status.is_tagged = True
                resource_status.waiting_for_approval = False
                resource_status.is_approved = True
                resource_status.status_description = 'Approved.'
                resource_status.save()
        return super().response_change(request, obj)
 def save_model(self, request, obj, form, change):
     if obj.added_by is None or obj.added_by == '':
         obj.added_by = request.user
     super().save_model(request, obj, form, change)
     resource = Resource.objects.get(id=obj.pk)
     check_tagging_resource = TaggingResource.objects.filter(
         resource=resource)
     if not check_tagging_resource.exists():
         TaggingResource(resource=resource).save()
     check_resource_status = ResourceStatus.objects.filter(
         resource=resource)
     if not check_resource_status.exists():
         ResourceStatus(resource=resource,
                        waiting_for_tagging=True,
                        status_description='Waiting for tagging').save()