on fait la distinction entre url affichée au public, et url servant à identifier un événement
This commit is contained in:
parent
cc3ede4ed5
commit
07729353ae
@ -205,6 +205,7 @@ class ExtractorFacebook(Extractor):
|
||||
description=self.get_element("description"),
|
||||
image=self.get_element("image"),
|
||||
image_alt=self.get_element("image_alt"),
|
||||
uuids=[url],
|
||||
reference_urls=[url])
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
from django.forms import ModelForm, ValidationError, TextInput, Form, URLField
|
||||
from django.forms import ModelForm, ValidationError, TextInput, Form, URLField, MultipleHiddenInput
|
||||
from datetime import date
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ class EventForm(ModelForm):
|
||||
'start_time': TextInput(attrs={'type': 'time', 'onchange': 'update_datetimes(event);', "onfocus": "this.oldvalue = this.value;"}),
|
||||
'end_day': TextInput(attrs={'type': 'date'}),
|
||||
'end_time': TextInput(attrs={'type': 'time'}),
|
||||
'uuids': MultipleHiddenInput(),
|
||||
}
|
||||
|
||||
|
||||
|
19
src/agenda_culturel/migrations/0015_event_uuids.py
Normal file
19
src/agenda_culturel/migrations/0015_event_uuids.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.7 on 2023-12-23 11:58
|
||||
|
||||
from django.db import migrations, models
|
||||
import django_better_admin_arrayfield.models.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('agenda_culturel', '0014_batchimportation_celery_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='event',
|
||||
name='uuids',
|
||||
field=django_better_admin_arrayfield.models.fields.ArrayField(base_field=models.CharField(max_length=512), blank=True, help_text='UUIDs from import to detect duplicated entries.', null=True, size=None, verbose_name='UUIDs'),
|
||||
),
|
||||
]
|
@ -123,6 +123,7 @@ class Event(models.Model):
|
||||
image = models.URLField(verbose_name=_('Illustration'), help_text=_("URL of the illustration image"), max_length=1024, blank=True, null=True)
|
||||
image_alt = models.CharField(verbose_name=_('Illustration description'), help_text=_('Alternative text used by screen readers for the image'), blank=True, null=True, max_length=1024)
|
||||
|
||||
uuids = ArrayField(models.CharField(max_length=512), verbose_name=_('UUIDs'), help_text=_("UUIDs from import to detect duplicated entries."), blank=True, null=True)
|
||||
reference_urls = ArrayField(models.URLField(max_length=512), verbose_name=_('URLs'), help_text=_("List of all the urls where this event can be found."), blank=True, null=True)
|
||||
|
||||
tags = ArrayField(models.CharField(max_length=64), verbose_name=_('Tags'), help_text=_("A list of tags that describe the event."), blank=True, null=True)
|
||||
|
@ -270,7 +270,7 @@ def import_from_url(request):
|
||||
|
||||
url = ExtractorAllURLs.clean_url(url)
|
||||
|
||||
existing = Event.objects.filter(reference_urls__contains=[url])
|
||||
existing = Event.objects.filter(uuids__contains=[url])
|
||||
|
||||
if len(existing) == 0:
|
||||
event = ExtractorAllURLs.extract(url)
|
||||
@ -279,7 +279,7 @@ def import_from_url(request):
|
||||
messages.success(request, _("The event has been successfully extracted, and you can now submit it after modifying it if necessary."))
|
||||
return render(request, 'agenda_culturel/event_form.html', context={'form': form })
|
||||
else:
|
||||
form = EventForm(initial={'url': [url]})
|
||||
form = EventForm(initial={'reference_urls': [url]})
|
||||
messages.error(request, _("Unable to extract an event from the proposed URL. Please use the form below to submit the event."))
|
||||
return render(request, 'agenda_culturel/import.html', context={'form': form, 'form_event': form_event})
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user