* Update vnu.jar * Fix py2 -> py3 issue * Run pyupgrade * test: Add default-jdk to images * test: Add option to also validate HTML with vnu.jar Since it's already installed in bin. Don't do this by default, since it increases the time needed for tests by ~50%. * fix: Stop the urlizer from urlizing in linkified mailto: text * More HTML fixes * More HTML validation fixes * And more HTML fixes * Fix floating badge * Ignore unicode errors * Only URLize docs that are existing * Final fixes * Don't URLize everything during test-crawl * Feed HTML into vnu using python rather than Java to speed things up * Allow test-crawl to start vnu on a different port * Increase retry count to vnu. Restore batch size to 30. * More HTML validation fixes * Use urllib3 to make requests to vnu, since overriding requests_mock is tricky * Undo commit of unmodified file * Also urlize ftp links * Fix matching of file name * More HTML fixes * Add `is_valid_url` filter * weekday -> data-weekday * urlencode URLs * Add and use vnu_fmt_message. Bump vnu max buffer. * Simplify doc_exists * Don't add tab link to mail archive if the URL is invalid * Run urlize_ietf_docs before linkify Reduces the possibility of generating incorrect HTML * Undo superfluous change * Runner fixes * Consolidate vnu message filtering into vnu_filter_message * Correctly handle multiple persons with same name * Minimze diff * Fix HTML nits * Print source snippet in vnu_fmt_message * Only escape if there is something to escape * Fix snippet * Skip crufty old IPR declarations * Only include modal when needed. Add handles. * Fix wordwrap+linkification * Update ietf/doc/templatetags/ietf_filters.py * Update ietf/doc/templatetags/tests_ietf_filters.py * Don't right-align second column
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# Copyright The IETF Trust 2007-2019, All Rights Reserved
|
|
|
|
from django import forms
|
|
|
|
from ietf.doc.models import Document
|
|
from ietf.meeting.models import Session
|
|
from ietf.meeting.utils import add_event_info_to_session_qs
|
|
|
|
|
|
# ---------------------------------------------
|
|
# Globals
|
|
# ---------------------------------------------
|
|
|
|
VALID_SLIDE_EXTENSIONS = ('.doc','.docx','.pdf','.ppt','.pptx','.txt','.zip')
|
|
VALID_MINUTES_EXTENSIONS = ('.txt','.html','.htm','.pdf')
|
|
VALID_AGENDA_EXTENSIONS = ('.txt','.html','.htm')
|
|
VALID_BLUESHEET_EXTENSIONS = ('.pdf','.jpg','.jpeg')
|
|
|
|
#----------------------------------------------------------
|
|
# Forms
|
|
#----------------------------------------------------------
|
|
|
|
class RecordingForm(forms.Form):
|
|
external_url = forms.URLField(label='Url')
|
|
session = forms.ModelChoiceField(queryset=Session.objects)
|
|
session.widget.attrs['class'] = "select2-field"
|
|
session.widget.attrs['data-minimum-input-length'] = 0
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.meeting = kwargs.pop('meeting')
|
|
super(RecordingForm, self).__init__(*args,**kwargs)
|
|
self.fields['session'].queryset = add_event_info_to_session_qs(
|
|
Session.objects.filter(meeting=self.meeting, type__in=['regular','plenary','other'])
|
|
).filter(current_status='sched').order_by('group__acronym')
|
|
|
|
class RecordingEditForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Document
|
|
fields = ['external_url']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(RecordingEditForm, self).__init__(*args, **kwargs)
|
|
self.fields['external_url'].label='Url'
|
|
|