-# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
from datetime import date
-from urllib2 import urlopen
+import json
+from urllib.request import urlopen
from django import forms
-from django.utils.translation import ugettext_lazy as _
-from fnpdjango.utils.text.slughifi import slughifi
+from django.utils.translation import gettext_lazy as _
+from slugify import slugify
from isbn.management.commands.import_onix import UNKNOWN
from isbn.models import ONIXRecord, ISBNPool
class WLISBNForm(forms.Form):
- platform_url = forms.URLField(label=u'Adres na platformie')
- publishing_date = forms.DateField(label=u'Data publikacji', initial=date.today)
+ platform_url = forms.URLField(label='Adres na platformie')
+ publishing_date = forms.DateField(label='Data publikacji', initial=date.today)
def prepare_data(self):
platform_url = self.cleaned_data['platform_url']
for file_format in data['formats']:
data['product_form'] = PRODUCT_FORMS[file_format]
data['product_form_detail'] = PRODUCT_FORM_DETAILS[file_format]
- data['contributors'] = self.contributors(data)
+ data['contributors'] = json.dumps(self.contributors(data))
ONIXRecord.new_record(purpose=ISBNPool.PURPOSE_WL, data=data)
return data
('SOFT', _('Soft cover book')),
)
LANGUAGE_CHOICES = (
- ('pol', u'polski'),
- ('eng', u'angielski'),
- ('ger', u'niemiecki'),
- ('fre', u'francuski'),
+ ('pol', 'polski'),
+ ('eng', 'angielski'),
+ ('ger', 'niemiecki'),
+ ('fre', 'francuski'),
)
title = forms.CharField()
- authors = forms.CharField(help_text=u'wartości oddzielone przecinkami lub „Wielu autorów”')
+ authors = forms.CharField(help_text='wartości oddzielone przecinkami lub „Wielu autorów”')
formats = forms.MultipleChoiceField(choices=FORMAT_CHOICES)
language = forms.ChoiceField(choices=LANGUAGE_CHOICES)
publishing_date = forms.DateField()
def prepare_author(self, name):
- if name == u'Wielu autorów':
+ if name == 'Wielu autorów':
return {'role': 'A01', 'unnamed': '04'}
if ' ' in name:
first_name, last_name = [s.strip() for s in name.rsplit(' ', 1)]
return {'role': 'A01', 'name': output_name}
def slug(self):
- return slughifi('fnp %s %s' % (self.cleaned_data['authors'], self.cleaned_data['title']))
+ return slugify('fnp %s %s' % (self.cleaned_data['authors'], self.cleaned_data['title']))
def save(self):
data = {
'title': self.cleaned_data['title'],
'language': self.cleaned_data['language'],
'publishing_date': self.cleaned_data['publishing_date'],
- 'contributors': [self.prepare_author(a) for a in self.cleaned_data['authors'].split(',')],
+ 'contributors': json.dumps([self.prepare_author(a) for a in self.cleaned_data['authors'].split(',')]),
'edition_type': 'NED',
'imprint': 'Fundacja Nowoczesna Polska',
'dc_slug': self.slug(),