예제 #1
0
def parse_book(item):

    book = get_or_default(
        Book,
        Book(),
        slug=nslugify(item['data']['bookTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('series')),
        year=_parse_date(item).year,
    )

    book.title = item['data']['bookTitle']

    book.isbn = _assign_if_exists(item, 'ISBN')
    book.volume = _assign_if_exists(item, 'volume')
    book.series = _assign_if_exists(item, 'series')
    book.publisher = _assign_if_exists(item, 'publisher')
    book.place = _assign_if_exists(item, 'place')

    book.published = _parse_date(item)
    book.year = book.published.year

    book.save()

    _save_publication_editors(_extract_editors(item), book)

    return book
예제 #2
0
def parse_proceedings(item):
    if item['data']['proceedingsTitle'] != '':
        proceedings_title = item['data']['proceedingsTitle']

    else:
        if item['data']['conferenceName'] != '':
            proceedings_title = 'Proceedings of conference: %s' % item['data']['conferenceName']

        else:
            proceedings_title = 'Proceedings for article: %s' % item['data']['title']

    proceedings = get_or_default(
        Proceedings,
        Proceedings(),
        slug=nslugify(proceedings_title, _parse_date(item).year, item['data'].get('volume')),
        year=_parse_date(item).year,
    )

    proceedings.title = proceedings_title

    proceedings.isbn = _assign_if_exists(item, 'ISBN')
    proceedings.volume = _assign_if_exists(item, 'volume')
    proceedings.series = _assign_if_exists(item, 'series')
    proceedings.publisher = _assign_if_exists(item, 'publisher')
    proceedings.place = _assign_if_exists(item, 'place')

    proceedings.published = _parse_date(item)
    proceedings.year = proceedings.published.year

    proceedings.save()

    return proceedings
예제 #3
0
    def save(self, *args, **kwargs):
        old_slug = self.slug

        # Publish RDF data
        if getattr(settings, 'ENABLE_RDF_PUBLISHING', False):
            delete_event_rdf(self)

        if not self.short_name:
            self.short_name = self.full_name

        self.slug = nslugify(self.short_name, self.year)
        super(Event, self).save(*args, **kwargs)

        # Publish RDF data
        if getattr(settings, 'ENABLE_RDF_PUBLISHING', False):
            save_event_as_rdf(self)
            update_event_object_triples(old_slug, self.slug)
예제 #4
0
파일: models.py 프로젝트: morelab/labman_ud
    def save(self, *args, **kwargs):
        old_slug = self.slug

        # Publish RDF data
        if getattr(settings, 'ENABLE_RDF_PUBLISHING', False):
            delete_event_rdf(self)

        if not self.short_name:
            self.short_name = self.full_name

        self.slug = nslugify(self.short_name, self.year)
        super(Event, self).save(*args, **kwargs)

        # Publish RDF data
        if getattr(settings, 'ENABLE_RDF_PUBLISHING', False):
            save_event_as_rdf(self)
            update_event_object_triples(old_slug, self.slug)
예제 #5
0
def parse_journal(item):
    journal_slug = nslugify(item['data']['publicationTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('issue'))

    journal = get_or_default(Journal, Journal(), slug=journal_slug)

    journal.title = item['data']['publicationTitle']

    journal.issn = _assign_if_exists(item, 'ISSN')
    journal.volume = _assign_if_exists(item, 'volume')
    journal.publisher = _assign_if_exists(item, 'publisher')
    journal.place = _assign_if_exists(item, 'place')
    journal.journal_abbreviation = _assign_if_exists(item, 'journalAbbrevation')
    journal.issue = _assign_if_exists(item, 'issue')

    journal.published = _parse_date(item)
    journal.year = journal.published.year

    journal.save()

    return journal
예제 #6
0
def parse_magazine(item):

    magazine = get_or_default(
        Magazine,
        Magazine(),
        slug=nslugify(item['data']['publicationTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('issue')),
        year=_parse_date(item).year,
    )

    magazine.title = item['data']['publicationTitle']

    magazine.issn = _assign_if_exists(item, 'ISSN')
    magazine.volume = _assign_if_exists(item, 'volume')
    magazine.issue = _assign_if_exists(item, 'issue')

    magazine.published = _parse_date(item)
    magazine.year = magazine.published.year

    magazine.save()

    return magazine
예제 #7
0
def parse_conference(item, proceedings):
    if 'conferenceName' in item['data'] and item['data']['conferenceName'] != '':
        event = get_or_default(
            Event,
            Event(),
            slug=nslugify(item['data']['conferenceName'], _parse_date(item).year),
        )

        event.event_type = 'Academic event'

        event.full_name = item['data']['conferenceName']

        if 'place' in item['data'] and item['data']['place'] != '':
            places_list = item['data']['place'].split(', ')

            if len(places_list) == 2:
                city_name = places_list[0]
                country_name = places_list[1]

                event_location = ''

                if city_name and city_name != '':
                    city, created = City.objects.get_or_create(
                        slug=slugify(city_name),
                        defaults={
                            'full_name': city_name,
                        },
                    )

                else:
                    city = None

                if country_name and country_name != '' and city:
                    country, created = Country.objects.get_or_create(
                        slug=slugify(country_name),
                        defaults={
                            'full_name': country_name,
                        },
                    )

                    if city:
                        city.country = country
                        city.save()

                else:
                    country = None

                try:
                    event_location = '%s (%s)' % (city_name, country_name)
                except:
                    event_location = ''

                event.host_city = city
                event.host_country = country

                event.location = event_location

        event.start_date = _parse_date(item)
        event.year = event.start_date.year

        event.proceedings = proceedings

        event.save()

        return event

    else:
        return None
예제 #8
0
 def _generate_slug(self):
     return nslugify(self.title, self.year, self.volume, self.issue)
예제 #9
0
 def _generate_slug(self):
     return nslugify(self.title, self.year, self.volume, self.issue)