chore: merge main into feat/tzaware branch
This commit is contained in:
commit
0391383c42
.pnp.cjspackage.jsonrequirements.txtyarn.lock
.yarn/cache
@eslint-eslintrc-npm-1.3.2-fd8de37609-2074dca47d.zip@humanwhocodes-config-array-npm-0.10.4-8334b3c6a2-d480e5d57e.zip@humanwhocodes-config-array-npm-0.10.7-81c0f4b5e6-009d64be8d.zip@percy-cli-app-npm-1.10.4-06b84c2fa7-81db381f2e.zip@percy-cli-build-npm-1.10.4-aea75ba7bd-c6aa64bbb3.zip@percy-cli-command-npm-1.10.4-9b894aa1cf-d96a572e24.zip@percy-cli-config-npm-1.10.4-9177c0305d-901df758d4.zip@percy-cli-exec-npm-1.10.4-df1853a356-d1c77ce6c9.zip@percy-cli-npm-1.10.4-acb199a834-3164e88bbc.zip@percy-cli-snapshot-npm-1.10.4-12fbaf9321-51542704a0.zip@percy-cli-upload-npm-1.10.4-cf4deabe63-518e3e2414.zip@percy-client-npm-1.10.4-a8afab3bcb-8970cb0fee.zip@percy-config-npm-1.10.4-b58233e905-545e2fd4ab.zip@percy-core-npm-1.10.4-0c5deaa690-39f6de1cf5.zip@percy-dom-npm-1.10.4-ced497b448-2c1b4da7fa.zip@percy-env-npm-1.10.4-d5bfdc729b-c2a9f6b384.zip@percy-logger-npm-1.10.4-34e93e31f1-4c6ade3902.zip@vue-compiler-core-npm-3.2.39-be263a1f6d-dd70ed60b1.zip@vue-compiler-core-npm-3.2.40-f464645db3-2683bf13ef.zip@vue-compiler-dom-npm-3.2.39-9e2b1d91e3-505a8f8515.zip@vue-compiler-dom-npm-3.2.40-df00f2f10c-d928a16ebd.zip@vue-compiler-sfc-npm-3.2.39-7f95377cda-b82755eec2.zip@vue-compiler-sfc-npm-3.2.40-7a8032e16c-96cbfd078a.zip@vue-compiler-ssr-npm-3.2.39-1c153c6e65-27323a548d.zip@vue-compiler-ssr-npm-3.2.40-76cabde3f1-026461fcee.zip@vue-reactivity-npm-3.2.40-d9155c50c7-927d22b424.zip@vue-reactivity-transform-npm-3.2.40-c8706743e9-b86fc29b52.zip@vue-runtime-core-npm-3.2.39-30744183d1-13f6b92d70.zip@vue-runtime-core-npm-3.2.40-62158afe79-47c4918c12.zip@vue-runtime-dom-npm-3.2.39-7bd0d7efc4-0c47f94114.zip@vue-runtime-dom-npm-3.2.40-1bb705cd21-4615d00cc4.zip@vue-server-renderer-npm-3.2.39-1b8648f591-ae6ccd08b8.zip@vue-server-renderer-npm-3.2.40-b8eff98a5b-f9d53aefca.zip@vue-shared-npm-3.2.40-6b1329b2bd-d91a1e12ff.zip@vue-test-utils-npm-2.0.2-8fecfc05d1-384bdd4231.zip@vue-test-utils-npm-2.1.0-c3d34439bb-4612568209.zipbootstrap-npm-5.2.1-615925a4f6-f7d733ae5d.zipbootstrap-npm-5.2.2-8effda7631-14e6df28fe.zipcaniuse-lite-npm-1.0.30001393-fabe41ad77-72b7cd81c5.zipcaniuse-lite-npm-1.0.30001414-91010a4bbf-97210cfd15.zipcypress-npm-10.9.0-7807fe85fd-79e3dccbb8.zipeslint-npm-8.24.0-40a0bdeb6e-ca293ce711.zipeslint-plugin-n-npm-15.3.0-63b77d751e-a5a4c77880.zipeslint-plugin-vue-npm-9.5.1-71da965834-3643332871.zipeventemitter2-npm-6.4.5-6862f231f1-84504f9cf0.zipeventemitter2-npm-6.4.7-ad2467adaa-1b36a77e13.zipfunctional-red-black-tree-npm-1.0.1-ccfe924dcd-ca6c170f37.ziphtml-validate-npm-7.3.3-94af764faf-15a092fd28.ziphtml-validate-npm-7.5.0-ad3a30b92f-04d73c5173.zipjs-sdsl-npm-4.1.5-66fcf4f580-695f657ddc.zipluxon-npm-3.0.3-3194094d12-67d143f102.zipluxon-npm-3.0.4-402f9149bc-d0908c3951.zipnaive-ui-npm-2.33.3-b741bf7169-772373981b.zipsass-npm-1.54.9-bbfad219c0-90182b5660.zipsass-npm-1.55.0-594c748a96-7d769ed08e.zipvue-npm-3.2.39-cde0f41ddb-f096a3f0a5.zipvue-npm-3.2.40-ee1b0f06d2-fb5ca87c16.zip
dev
ietf
doc
ietfauth
ipr
meeting
nomcom
person
review
secr/templates/includes
static
stats
submit
templates
utils
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@humanwhocodes-config-array-npm-0.10.7-81c0f4b5e6-009d64be8d.zip
vendored
Normal file
BIN
.yarn/cache/@humanwhocodes-config-array-npm-0.10.7-81c0f4b5e6-009d64be8d.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-compiler-core-npm-3.2.40-f464645db3-2683bf13ef.zip
vendored
Normal file
BIN
.yarn/cache/@vue-compiler-core-npm-3.2.40-f464645db3-2683bf13ef.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-compiler-dom-npm-3.2.40-df00f2f10c-d928a16ebd.zip
vendored
Normal file
BIN
.yarn/cache/@vue-compiler-dom-npm-3.2.40-df00f2f10c-d928a16ebd.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-compiler-sfc-npm-3.2.40-7a8032e16c-96cbfd078a.zip
vendored
Normal file
BIN
.yarn/cache/@vue-compiler-sfc-npm-3.2.40-7a8032e16c-96cbfd078a.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-compiler-ssr-npm-3.2.40-76cabde3f1-026461fcee.zip
vendored
Normal file
BIN
.yarn/cache/@vue-compiler-ssr-npm-3.2.40-76cabde3f1-026461fcee.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-runtime-core-npm-3.2.40-62158afe79-47c4918c12.zip
vendored
Normal file
BIN
.yarn/cache/@vue-runtime-core-npm-3.2.40-62158afe79-47c4918c12.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-runtime-dom-npm-3.2.40-1bb705cd21-4615d00cc4.zip
vendored
Normal file
BIN
.yarn/cache/@vue-runtime-dom-npm-3.2.40-1bb705cd21-4615d00cc4.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-server-renderer-npm-3.2.40-b8eff98a5b-f9d53aefca.zip
vendored
Normal file
BIN
.yarn/cache/@vue-server-renderer-npm-3.2.40-b8eff98a5b-f9d53aefca.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vue-test-utils-npm-2.1.0-c3d34439bb-4612568209.zip
vendored
Normal file
BIN
.yarn/cache/@vue-test-utils-npm-2.1.0-c3d34439bb-4612568209.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/bootstrap-npm-5.2.2-8effda7631-14e6df28fe.zip
vendored
Normal file
BIN
.yarn/cache/bootstrap-npm-5.2.2-8effda7631-14e6df28fe.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001414-91010a4bbf-97210cfd15.zip
vendored
Normal file
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001414-91010a4bbf-97210cfd15.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/eventemitter2-npm-6.4.7-ad2467adaa-1b36a77e13.zip
vendored
Normal file
BIN
.yarn/cache/eventemitter2-npm-6.4.7-ad2467adaa-1b36a77e13.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/html-validate-npm-7.5.0-ad3a30b92f-04d73c5173.zip
vendored
Normal file
BIN
.yarn/cache/html-validate-npm-7.5.0-ad3a30b92f-04d73c5173.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/js-sdsl-npm-4.1.5-66fcf4f580-695f657ddc.zip
vendored
Normal file
BIN
.yarn/cache/js-sdsl-npm-4.1.5-66fcf4f580-695f657ddc.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/luxon-npm-3.0.4-402f9149bc-d0908c3951.zip
vendored
Normal file
BIN
.yarn/cache/luxon-npm-3.0.4-402f9149bc-d0908c3951.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/sass-npm-1.55.0-594c748a96-7d769ed08e.zip
vendored
Normal file
BIN
.yarn/cache/sass-npm-1.55.0-594c748a96-7d769ed08e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/vue-npm-3.2.39-cde0f41ddb-f096a3f0a5.zip
vendored
BIN
.yarn/cache/vue-npm-3.2.39-cde0f41ddb-f096a3f0a5.zip
vendored
Binary file not shown.
BIN
.yarn/cache/vue-npm-3.2.40-ee1b0f06d2-fb5ca87c16.zip
vendored
Normal file
BIN
.yarn/cache/vue-npm-3.2.40-ee1b0f06d2-fb5ca87c16.zip
vendored
Normal file
Binary file not shown.
|
@ -4,3 +4,5 @@ coverage:
|
|||
default:
|
||||
target: auto
|
||||
threshold: 1%
|
||||
github_checks:
|
||||
annotations: false
|
||||
|
|
|
@ -224,7 +224,7 @@ def state_age_colored(doc):
|
|||
else:
|
||||
title = ""
|
||||
return mark_safe(
|
||||
'<span class="badge %s" %s><i class="bi bi-clock-fill"></i> %d</span>'
|
||||
'<span class="badge rounded-pill %s" %s><i class="bi bi-clock-fill"></i> %d</span>'
|
||||
% (class_name, title, days)
|
||||
)
|
||||
else:
|
||||
|
|
|
@ -642,10 +642,10 @@ def action_holder_badge(action_holder):
|
|||
''
|
||||
|
||||
>>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=16)))
|
||||
'<span class="badge bg-danger" title="In state for 16 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 16</span>'
|
||||
'<span class="badge rounded-pill bg-danger" title="In state for 16 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 16</span>'
|
||||
|
||||
>>> action_holder_badge(DocumentActionHolderFactory(time_added=timezone.now() - datetime.timedelta(days=30)))
|
||||
'<span class="badge bg-danger" title="In state for 30 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 30</span>'
|
||||
'<span class="badge rounded-pill bg-danger" title="In state for 30 days; goal is <15 days."><i class="bi bi-clock-fill"></i> 30</span>'
|
||||
|
||||
>>> settings.DOC_ACTION_HOLDER_AGE_LIMIT_DAYS = old_limit
|
||||
"""
|
||||
|
@ -653,7 +653,7 @@ def action_holder_badge(action_holder):
|
|||
age = (timezone.now() - action_holder.time_added).days
|
||||
if age > age_limit:
|
||||
return mark_safe(
|
||||
'<span class="badge bg-danger" title="In state for %d day%s; goal is <%d days."><i class="bi bi-clock-fill"></i> %d</span>'
|
||||
'<span class="badge rounded-pill bg-danger" title="In state for %d day%s; goal is <%d days."><i class="bi bi-clock-fill"></i> %d</span>'
|
||||
% (age, "s" if age != 1 else "", age_limit, age)
|
||||
)
|
||||
else:
|
||||
|
|
|
@ -94,7 +94,7 @@ class SearchForm(forms.Form):
|
|||
("ad", "AD"), ("-ad", "AD (desc)"), ),
|
||||
required=False, widget=forms.HiddenInput)
|
||||
|
||||
doctypes = forms.ModelMultipleChoiceField(queryset=DocTypeName.objects.filter(used=True).exclude(slug='draft').order_by('name'), required=False)
|
||||
doctypes = forms.ModelMultipleChoiceField(queryset=DocTypeName.objects.filter(used=True).exclude(slug__in=('draft','liai-att')).order_by('name'), required=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SearchForm, self).__init__(*args, **kwargs)
|
||||
|
@ -479,7 +479,7 @@ def ad_workload(request):
|
|||
|
||||
doctypes = list(
|
||||
DocTypeName.objects.filter(used=True)
|
||||
.exclude(slug="draft")
|
||||
.exclude(slug__in=("draft", "liai-att"))
|
||||
.values_list("pk", flat=True)
|
||||
)
|
||||
|
||||
|
@ -493,10 +493,10 @@ def ad_workload(request):
|
|||
for id, (g, uig) in enumerate(
|
||||
[
|
||||
("Publication Requested Internet-Draft", False),
|
||||
("Waiting for Writeup Internet-Draft", False),
|
||||
("AD Evaluation Internet-Draft", False),
|
||||
("In Last Call Internet-Draft", None),
|
||||
("IESG Evaluation - Defer Internet-Draft", None),
|
||||
("In Last Call Internet-Draft", True),
|
||||
("Waiting for Writeup Internet-Draft", False),
|
||||
("IESG Evaluation - Defer Internet-Draft", False),
|
||||
("IESG Evaluation Internet-Draft", True),
|
||||
("Waiting for AD Go-Ahead Internet-Draft", False),
|
||||
("Approved-announcement to be sent Internet-Draft", True),
|
||||
|
@ -528,9 +528,9 @@ def ad_workload(request):
|
|||
for id, (g, uig) in enumerate(
|
||||
[
|
||||
("Publication Requested Status Change", False),
|
||||
("Waiting for Writeup Status Change", False),
|
||||
("AD Evaluation Status Change", False),
|
||||
("In Last Call Status Change", None),
|
||||
("In Last Call Status Change", True),
|
||||
("Waiting for Writeup Status Change", False),
|
||||
("IESG Evaluation Status Change", True),
|
||||
("Waiting for AD Go-Ahead Status Change", False),
|
||||
]
|
||||
|
@ -675,7 +675,7 @@ def docs_for_ad(request, name):
|
|||
form = SearchForm({'by':'ad','ad': ad.id,
|
||||
'rfcs':'on', 'activedrafts':'on', 'olddrafts':'on',
|
||||
'sort': 'status',
|
||||
'doctypes': list(DocTypeName.objects.filter(used=True).exclude(slug='draft').values_list("pk", flat=True))})
|
||||
'doctypes': list(DocTypeName.objects.filter(used=True).exclude(slug__in=('draft','liai-att')).values_list("pk", flat=True))})
|
||||
results, meta = prepare_document_table(request, retrieve_search_results(form), form.data, max_results=500)
|
||||
results.sort(key=ad_dashboard_sort_key)
|
||||
del meta["headers"][-1]
|
||||
|
|
|
@ -35,6 +35,7 @@ import debug # pyflakes:ignore
|
|||
from ietf.group.factories import GroupFactory, RoleFactory
|
||||
from ietf.group.models import Group, Role, RoleName
|
||||
from ietf.ietfauth.htpasswd import update_htpasswd_file
|
||||
from ietf.ietfauth.utils import has_role
|
||||
from ietf.mailinglists.models import Subscribed
|
||||
from ietf.meeting.factories import MeetingFactory
|
||||
from ietf.nomcom.factories import NomComFactory
|
||||
|
@ -1004,3 +1005,11 @@ class OpenIDConnectTests(TestCase):
|
|||
# handler, causing later logging to become visible even if that wasn't intended.
|
||||
# Fail here if that happens.
|
||||
self.assertEqual(logging.root.handlers, [])
|
||||
|
||||
|
||||
class UtilsTests(TestCase):
|
||||
def test_has_role_empty_role_names(self):
|
||||
"""has_role is False if role_names is empty"""
|
||||
role = RoleFactory(name_id='secr', group__acronym='secretariat')
|
||||
self.assertTrue(has_role(role.person.user, ['Secretariat']), 'Test is broken')
|
||||
self.assertFalse(has_role(role.person.user, []), 'has_role() should return False when role_name is empty')
|
|
@ -4,10 +4,7 @@
|
|||
|
||||
# various authentication and authorization utilities
|
||||
|
||||
import datetime
|
||||
|
||||
import oidc_provider.lib.claims
|
||||
from oidc_provider.models import Client as ClientRecord
|
||||
|
||||
|
||||
from functools import wraps
|
||||
|
@ -96,7 +93,7 @@ def has_role(user, role_names, *args, **kwargs):
|
|||
"Robot": Q(person=person, name="robot", group__acronym="secretariat"),
|
||||
}
|
||||
|
||||
filter_expr = Q()
|
||||
filter_expr = Q(pk__in=[]) # ensure empty set is returned if no other terms are added
|
||||
for r in role_names:
|
||||
filter_expr |= role_qs[r]
|
||||
|
||||
|
@ -167,7 +164,7 @@ def is_authorized_in_doc_stream(user, doc):
|
|||
docman_roles = GroupFeatures.objects.get(type_id="ietf").docman_roles
|
||||
group_req = Q(group__acronym=doc.stream.slug)
|
||||
else:
|
||||
group_req = Q()
|
||||
group_req = Q() # no group constraint for other cases
|
||||
|
||||
return Role.objects.filter(Q(name__in=docman_roles, person__user=user) & group_req).exists()
|
||||
|
||||
|
@ -281,15 +278,6 @@ class OidcExtraScopeClaims(oidc_provider.lib.claims.ScopeClaims):
|
|||
reg.save()
|
||||
info = {}
|
||||
if regs:
|
||||
# maybe register attendance if logged in to follow a meeting
|
||||
today = datetime.date.today()
|
||||
if meeting.date <= today <= meeting.end_date():
|
||||
client = ClientRecord.objects.get(client_id=self.client.client_id)
|
||||
if client.name == 'Meetecho':
|
||||
for reg in regs:
|
||||
if not reg.attended:
|
||||
reg.attended = True
|
||||
reg.save()
|
||||
# fill in info to return
|
||||
ticket_types = set([])
|
||||
reg_types = set([])
|
||||
|
|
|
@ -187,7 +187,7 @@ def ajax_search(request):
|
|||
if not q:
|
||||
objs = IprDisclosureBase.objects.none()
|
||||
else:
|
||||
query = Q()
|
||||
query = Q() # all objects returned if no other terms in the queryset
|
||||
for t in q:
|
||||
query &= Q(title__icontains=t)
|
||||
|
||||
|
|
|
@ -6557,7 +6557,7 @@ class SessionTests(TestCase):
|
|||
group_type_without_meetings = 'editorial'
|
||||
self.assertFalse(GroupFeatures.objects.get(pk=group_type_without_meetings).has_meetings)
|
||||
|
||||
area = GroupFactory(type_id='area')
|
||||
area = GroupFactory(type_id='area', acronym='area')
|
||||
requested_session = SessionFactory(meeting=meeting,group__parent=area,status_id='schedw',add_to_schedule=False)
|
||||
conflicting_session = SessionFactory(meeting=meeting,group__parent=area,status_id='schedw',add_to_schedule=False)
|
||||
ConstraintFactory(name_id='key_participant',meeting=meeting,source=requested_session.group,target=conflicting_session.group)
|
||||
|
@ -6597,7 +6597,29 @@ class SessionTests(TestCase):
|
|||
status_id='schedw',
|
||||
add_to_schedule=False,
|
||||
)
|
||||
|
||||
# bof sessions should be shown
|
||||
bof_session = SessionFactory(
|
||||
meeting=meeting,
|
||||
group__parent=area,
|
||||
group__state_id='bof',
|
||||
status_id='schedw',
|
||||
add_to_schedule=False,
|
||||
)
|
||||
# proposed WG sessions should be shown
|
||||
proposed_wg_session = SessionFactory(
|
||||
meeting=meeting,
|
||||
group__parent=area,
|
||||
group__state_id='proposed',
|
||||
status_id='schedw',
|
||||
add_to_schedule=False,
|
||||
)
|
||||
# rg sessions should be shown under 'irtf' heading
|
||||
rg_session = SessionFactory(
|
||||
meeting=meeting,
|
||||
group__type_id='rg',
|
||||
status_id='schedw',
|
||||
add_to_schedule=False,
|
||||
)
|
||||
def _sreq_edit_link(sess):
|
||||
return urlreverse(
|
||||
'ietf.secr.sreq.views.edit',
|
||||
|
@ -6630,6 +6652,19 @@ class SessionTests(TestCase):
|
|||
self.assertContains(r, _sreq_edit_link(has_meetings_not_meeting)) # link to the session request
|
||||
self.assertNotContains(r, not_has_meetings.group.acronym)
|
||||
self.assertNotContains(r, _sreq_edit_link(not_has_meetings)) # no link to the session request
|
||||
self.assertContains(r, bof_session.group.acronym)
|
||||
self.assertContains(r, _sreq_edit_link(bof_session)) # link to the session request
|
||||
self.assertContains(r, proposed_wg_session.group.acronym)
|
||||
self.assertContains(r, _sreq_edit_link(proposed_wg_session)) # link to the session request
|
||||
self.assertContains(r, rg_session.group.acronym)
|
||||
self.assertContains(r, _sreq_edit_link(rg_session)) # link to the session request
|
||||
# check headings - note that the special types (has_meetings, etc) do not have a group parent
|
||||
# so they show up in 'other'
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('h2#area')), 1)
|
||||
self.assertEqual(len(q('h2#other-groups')), 1)
|
||||
self.assertEqual(len(q('h2#irtf')), 1) # rg group has irtf group as parent
|
||||
|
||||
|
||||
def test_request_minutes(self):
|
||||
meeting = MeetingFactory(type_id='ietf')
|
||||
|
|
|
@ -2339,7 +2339,10 @@ def agenda_json(request, num=None):
|
|||
|
||||
def meeting_requests(request, num=None):
|
||||
meeting = get_meeting(num)
|
||||
groups_to_show = Group.objects.filter(state_id='active', type__features__has_meetings=True)
|
||||
groups_to_show = Group.objects.filter(
|
||||
state_id__in=('active', 'bof', 'proposed'),
|
||||
type__features__has_meetings=True,
|
||||
)
|
||||
sessions = list(
|
||||
Session.objects.requests().filter(
|
||||
meeting__number=meeting.number,
|
||||
|
@ -2359,7 +2362,7 @@ def meeting_requests(request, num=None):
|
|||
for s in sessions:
|
||||
s.current_status_name = status_names.get(s.current_status, s.current_status)
|
||||
s.requested_by_person = session_requesters.get(s.requested_by)
|
||||
if s.group.parent and s.group.parent.type.slug == 'area':
|
||||
if s.group.parent and s.group.parent.type.slug in ('area', 'irtf'):
|
||||
s.display_area = s.group.parent
|
||||
else:
|
||||
s.display_area = None
|
||||
|
|
|
@ -2573,6 +2573,59 @@ class rfc8989EligibilityTests(TestCase):
|
|||
self.assertEqual(set(list_eligible(nomcom=nomcom)),set(eligible))
|
||||
Person.objects.filter(pk__in=[p.pk for p in eligible.union(ineligible)]).delete()
|
||||
|
||||
class rfc8989bisEligibilityTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.nomcom = NomComFactory(group__acronym='nomcom2023', populate_personnel=False, first_call_for_volunteers=datetime.date(2023,5,15))
|
||||
self.meetings = [
|
||||
MeetingFactory(number=number, date=date, type_id='ietf') for number,date in [
|
||||
('115', datetime.date(2022, 11, 5)),
|
||||
('114', datetime.date(2022, 7, 23)),
|
||||
('113', datetime.date(2022, 3, 19)),
|
||||
('112', datetime.date(2021, 11, 8)),
|
||||
('111', datetime.date(2021, 7, 26)),
|
||||
]
|
||||
]
|
||||
# make_immutable_test_data makes things this test does not want
|
||||
Role.objects.filter(name_id__in=('chair','secr')).delete()
|
||||
|
||||
def test_registration_is_not_enough(self):
|
||||
p = PersonFactory()
|
||||
for meeting in self.meetings:
|
||||
MeetingRegistrationFactory(person=p, meeting=meeting, checkedin=False)
|
||||
self.assertFalse(is_eligible(p, self.nomcom))
|
||||
|
||||
def test_elig_by_meetings(self):
|
||||
eligible_people = list()
|
||||
ineligible_people = list()
|
||||
attendance_methods = ('checkedin', 'session', 'both')
|
||||
for combo_len in range(0,6): # Someone might register for 0 to 5 previous meetings
|
||||
for combo in combinations(self.meetings, combo_len):
|
||||
# Cover cases where someone
|
||||
# - checked in, but attended no sessions
|
||||
# - checked in _and_ attended sessions
|
||||
# - didn't check_in but attended sessions
|
||||
# (Intentionally not covering the permutations of those cases)
|
||||
for method in attendance_methods:
|
||||
p = PersonFactory()
|
||||
for meeting in combo:
|
||||
MeetingRegistrationFactory(person=p, meeting=meeting, reg_type='onsite', checkedin=(method in ('checkedin', 'both')))
|
||||
if method in ('session', 'both'):
|
||||
AttendedFactory(session__meeting=meeting, session__type_id='plenary',person=p)
|
||||
if combo_len<3:
|
||||
ineligible_people.append(p)
|
||||
else:
|
||||
eligible_people.append(p)
|
||||
|
||||
self.assertEqual(set(eligible_people),set(list_eligible(self.nomcom)))
|
||||
|
||||
for person in eligible_people:
|
||||
self.assertTrue(is_eligible(person,self.nomcom))
|
||||
|
||||
for person in ineligible_people:
|
||||
self.assertFalse(is_eligible(person,self.nomcom))
|
||||
|
||||
class VolunteerTests(TestCase):
|
||||
|
||||
def test_volunteer(self):
|
||||
|
|
|
@ -10,6 +10,7 @@ import os
|
|||
import re
|
||||
import tempfile
|
||||
|
||||
from collections import defaultdict
|
||||
from email import message_from_string, message_from_bytes
|
||||
from email.header import decode_header
|
||||
from email.iterators import typed_subpart_iterator
|
||||
|
@ -28,7 +29,7 @@ from ietf.doc.models import DocEvent, NewRevisionDocEvent
|
|||
from ietf.group.models import Group, Role
|
||||
from ietf.person.models import Email, Person
|
||||
from ietf.mailtrigger.utils import gather_address_lists
|
||||
from ietf.meeting.models import Meeting
|
||||
from ietf.meeting.models import Meeting, Attended
|
||||
from ietf.utils.pipe import pipe
|
||||
from ietf.utils.mail import send_mail_text, send_mail, get_payload_text
|
||||
from ietf.utils.log import log
|
||||
|
@ -203,7 +204,7 @@ def store_nomcom_private_key(request, year, private_key):
|
|||
)
|
||||
if code != 0:
|
||||
log("openssl error: %s:\n Error %s: %s" %(command, code, error))
|
||||
if error:
|
||||
if error and error!=b"*** WARNING : deprecated key derivation used.\nUsing -iter or -pbkdf2 would be better.\n":
|
||||
out = ''
|
||||
request.session['NOMCOM_PRIVATE_KEY_%s' % year] = out
|
||||
|
||||
|
@ -511,6 +512,8 @@ def list_eligible(nomcom=None, date=None, base_qs=None):
|
|||
return list_eligible_8788(date=eligibility_date, base_qs=base_qs)
|
||||
elif eligibility_date.year in (2021,2022):
|
||||
return list_eligible_8989(date=eligibility_date, base_qs=base_qs)
|
||||
elif eligibility_date.year > 2022:
|
||||
return list_eligible_8989bis(date=eligibility_date, base_qs=base_qs)
|
||||
else:
|
||||
return Person.objects.none()
|
||||
|
||||
|
@ -537,21 +540,27 @@ def list_eligible_8713(date, base_qs=None):
|
|||
if not base_qs:
|
||||
base_qs = Person.objects.all()
|
||||
previous_five = previous_five_meetings(date)
|
||||
return remove_disqualified(three_of_five_eligible(previous_five=previous_five, queryset=base_qs))
|
||||
return remove_disqualified(three_of_five_eligible_8713(previous_five=previous_five, queryset=base_qs))
|
||||
|
||||
def list_eligible_8788(date, base_qs=None):
|
||||
if not base_qs:
|
||||
base_qs = Person.objects.all()
|
||||
previous_five = Meeting.objects.filter(number__in=['102','103','104','105','106'])
|
||||
return remove_disqualified(three_of_five_eligible(previous_five=previous_five, queryset=base_qs))
|
||||
return remove_disqualified(three_of_five_eligible_8713(previous_five=previous_five, queryset=base_qs))
|
||||
|
||||
def get_8989_eligibility_querysets(date, base_qs):
|
||||
return get_threerule_eligibility_querysets(date, base_qs, three_of_five_callable=three_of_five_eligible_8713)
|
||||
|
||||
def get_8989bis_eligibility_querysets(date, base_qs):
|
||||
return get_threerule_eligibility_querysets(date, base_qs, three_of_five_callable=three_of_five_eligible_8989bis)
|
||||
|
||||
def get_threerule_eligibility_querysets(date, base_qs, three_of_five_callable):
|
||||
if not base_qs:
|
||||
base_qs = Person.objects.all()
|
||||
|
||||
previous_five = previous_five_meetings(date)
|
||||
date_as_dt = datetime_from_date(date, DEADLINE_TZINFO)
|
||||
three_of_five_qs = new_three_of_five_eligible(previous_five=previous_five, queryset=base_qs)
|
||||
three_of_five_qs = three_of_five_callable(previous_five=previous_five, queryset=base_qs)
|
||||
|
||||
# If date is Feb 29, neither 3 nor 5 years ago has a Feb 29. Use Feb 28 instead.
|
||||
if date.month == 2 and date.day == 29:
|
||||
|
@ -566,7 +575,7 @@ def get_8989_eligibility_querysets(date, base_qs):
|
|||
Q(role__name_id__in=('chair','secr'),
|
||||
role__group__state_id='active',
|
||||
role__group__type_id='wg',
|
||||
role__group__time__lte=date_as_dt,
|
||||
role__group__time__lte=date_as_dt, ## TODO - inspect - lots of things affect group__time...
|
||||
)
|
||||
# was an officer since the given date (I think this is wrong - it looks at when roles _start_, not when roles end)
|
||||
| Q(rolehistory__group__time__gte=three_years_ago,
|
||||
|
@ -591,7 +600,15 @@ def list_eligible_8989(date, base_qs=None):
|
|||
if not base_qs:
|
||||
base_qs = Person.objects.all()
|
||||
three_of_five_qs, officer_qs, author_qs = get_8989_eligibility_querysets(date, base_qs)
|
||||
# Would be nice to use queryset union here, but the annotations in the three existing querysets make that difficult
|
||||
three_of_five_pks = three_of_five_qs.values_list('pk',flat=True)
|
||||
officer_pks = officer_qs.values_list('pk',flat=True)
|
||||
author_pks = author_qs.values_list('pk',flat=True)
|
||||
return remove_disqualified(Person.objects.filter(pk__in=set(three_of_five_pks).union(set(officer_pks)).union(set(author_pks))))
|
||||
|
||||
def list_eligible_8989bis(date, base_qs=None):
|
||||
if not base_qs:
|
||||
base_qs = Person.objects.all()
|
||||
three_of_five_qs, officer_qs, author_qs = get_8989bis_eligibility_querysets(date, base_qs)
|
||||
three_of_five_pks = three_of_five_qs.values_list('pk',flat=True)
|
||||
officer_pks = officer_qs.values_list('pk',flat=True)
|
||||
author_pks = author_qs.values_list('pk',flat=True)
|
||||
|
@ -626,28 +643,34 @@ def previous_five_meetings(date = None):
|
|||
date = datetime.date.today()
|
||||
return Meeting.objects.filter(type='ietf',date__lte=date).order_by('-date')[:5]
|
||||
|
||||
def three_of_five_eligible(previous_five, queryset=None):
|
||||
def three_of_five_eligible_8713(previous_five, queryset=None):
|
||||
""" Return a list of Person records who attended at least
|
||||
3 of the 5 type_id='ietf' meetings before the given
|
||||
date. Does not disqualify anyone based on held roles.
|
||||
This variant bases the calculation on MeetingRegistration.attended
|
||||
"""
|
||||
if queryset is None:
|
||||
queryset = Person.objects.all()
|
||||
return queryset.filter(meetingregistration__meeting__in=list(previous_five),meetingregistration__attended=True).annotate(mtg_count=Count('meetingregistration')).filter(mtg_count__gte=3)
|
||||
|
||||
def new_three_of_five_eligible(previous_five, queryset=None):
|
||||
""" Return a list of Person records who attended at least
|
||||
def three_of_five_eligible_8989bis(previous_five, queryset=None):
|
||||
""" Return a list of Person records who attended at least
|
||||
3 of the 5 type_id='ietf' meetings before the given
|
||||
date. Does not disqualify anyone based on held roles.
|
||||
This 'new' variant bases the calculation on the Meeting.Session model rather than Stats.MeetingRegistration
|
||||
This variant bases the calculation on Meeting.Session and MeetingRegistration.checked_in
|
||||
Leadership will have to create a new RFC specifying eligibility (RFC8989 is timing out) before it can be used.
|
||||
"""
|
||||
if queryset is None:
|
||||
queryset = Person.objects.all()
|
||||
return queryset.filter(
|
||||
Q(attended__session__meeting__in=list(previous_five)),
|
||||
Q(attended__session__type='plenary')|Q(attended__session__group__type__in=['wg','rg'])
|
||||
).annotate(mtg_count=Count('attended__session__meeting',distinct=True)).filter(mtg_count__gte=3)
|
||||
|
||||
counts = defaultdict(lambda: 0)
|
||||
for meeting in previous_five:
|
||||
checked_in = meeting.meetingregistration_set.filter(reg_type='onsite', checkedin=True).values_list('person', flat=True)
|
||||
sessions = meeting.session_set.filter(Q(type='plenary') | Q(group__type__in=['wg', 'rg']))
|
||||
attended = Attended.objects.filter(session__in=sessions).values_list('person', flat=True)
|
||||
for id in set(checked_in) | set(attended):
|
||||
counts[id] += 1
|
||||
return queryset.filter(pk__in=[id for id, count in counts.items() if count >= 3])
|
||||
|
||||
def suggest_affiliation(person):
|
||||
recent_meeting = person.meetingregistration_set.order_by('-meeting__date').first()
|
||||
|
|
|
@ -31,7 +31,7 @@ def ajax_select2_search(request, model_name):
|
|||
if not q:
|
||||
objs = model.objects.none()
|
||||
else:
|
||||
query = Q()
|
||||
query = Q() # all objects returned if no other terms in the queryset
|
||||
for t in q:
|
||||
if model == Email:
|
||||
query &= Q(person__alias__name__icontains=t) | Q(address__icontains=t)
|
||||
|
|
|
@ -151,7 +151,7 @@ def extract_review_assignment_data(teams=None, reviewers=None, time_from=None, t
|
|||
if ordering is None:
|
||||
ordering = []
|
||||
|
||||
filters = Q()
|
||||
filters = Q() # all objects returned if no other terms in the queryset
|
||||
|
||||
if teams:
|
||||
filters &= Q(review_request__team__in=teams)
|
||||
|
|
|
@ -27,7 +27,16 @@
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
<tr class="bg1"><td>Number of Attendees:{% if not is_virtual %}<span class="required">*</span>{% endif %}</td><td>{{ form.attendees.errors }}{{ form.attendees }}</td></tr>
|
||||
<tr class="bg2"><td>People who must be present:</td><td>{{ form.bethere.errors }}{{ form.bethere }}</td></tr>
|
||||
<tr class="bg2">
|
||||
<td>People who must be present:</td>
|
||||
<td>
|
||||
{{ form.bethere.errors }}
|
||||
{{ form.bethere }}
|
||||
<p class="fw-bold text-danger">
|
||||
You should not include the Area Directors; they will be added automatically.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="bg1"><td>Conflicts to Avoid:</td>
|
||||
<td>
|
||||
<table>
|
||||
|
@ -121,4 +130,4 @@
|
|||
<li><button type="button" onclick="history.back()">Back</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
|
@ -227,6 +227,13 @@ th {
|
|||
}
|
||||
}
|
||||
|
||||
// Style the navbar user photo
|
||||
.nav-link .user-photo {
|
||||
object-fit: cover;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
// Style the righthand navigation panel
|
||||
#righthand-panel {
|
||||
max-height: 80vh;
|
||||
|
|
|
@ -312,7 +312,9 @@ $(function () {
|
|||
|
||||
// Was this drag started by dragging a session?
|
||||
function isSessionDragEvent(event) {
|
||||
return Boolean(event.originalEvent.dataTransfer.getData(dnd_mime_type));
|
||||
return event.originalEvent.dataTransfer.types.some(
|
||||
(item_type) => item_type.indexOf(dnd_mime_type) === 0
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -324,7 +326,7 @@ $(function () {
|
|||
if (!isSessionDragEvent(event)) {
|
||||
return null;
|
||||
}
|
||||
const sessionId = event.originalEvent.dataTransfer.getData(dnd_mime_type);
|
||||
const sessionId = event.originalEvent.dataTransfer.types[0].slice(dnd_mime_type.length);
|
||||
const sessionElements = sessions.filter("#" + sessionId);
|
||||
if (sessionElements.length > 0) {
|
||||
return sessionElements[0];
|
||||
|
@ -357,7 +359,15 @@ $(function () {
|
|||
// dragging
|
||||
sessions.on("dragstart", function (event) {
|
||||
if (canEditSession(this)) {
|
||||
event.originalEvent.dataTransfer.setData(dnd_mime_type, this.id);
|
||||
/* Bit of a hack here - per the w3c drag and drop spec, the data being dragged
|
||||
* and dropped are only available during dragstart and drop events. Otherwise,
|
||||
* only their count and type are guaranteed to be available. (See
|
||||
* https://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#drag-data-store-mode)
|
||||
* To work around this, append the sessionId to the dnd_mime_type in the type we
|
||||
* report for our event. The event handlers can then pull it out when needed.
|
||||
* (At least Chrome v106 breaks if we try to peek at the payload.)
|
||||
*/
|
||||
event.originalEvent.dataTransfer.setData(dnd_mime_type + this.id, this.id);
|
||||
jQuery(this).addClass("dragging");
|
||||
selectSessionElement(this);
|
||||
showPastTimeslotHints();
|
||||
|
|
|
@ -12,6 +12,7 @@ class MeetingRegistrationFactory(factory.django.DjangoModelFactory):
|
|||
|
||||
meeting = factory.SubFactory(MeetingFactory)
|
||||
person = factory.SubFactory(PersonFactory)
|
||||
reg_type = 'onsite'
|
||||
first_name = factory.LazyAttribute(lambda obj: obj.person.first_name())
|
||||
last_name = factory.LazyAttribute(lambda obj: obj.person.last_name())
|
||||
attended = True
|
||||
attended = True
|
||||
|
|
|
@ -147,7 +147,7 @@ class DraftYangChecker(object):
|
|||
saved_stderr = sys.stderr
|
||||
sys.stdout = io.StringIO()
|
||||
sys.stderr = io.StringIO()
|
||||
extractor.extract_yang_model(file.readlines())
|
||||
extractor.extract_yang_model_text(file.read())
|
||||
model_list = extractor.get_extracted_models(False, True)
|
||||
out = sys.stdout.getvalue()
|
||||
err = sys.stderr.getvalue()
|
||||
|
|
|
@ -42,23 +42,32 @@
|
|||
<img alt="IETF Logo" class="me-2"
|
||||
src="{% static 'ietf/images/ietf-logo-nor-white.svg' %}">
|
||||
Datatracker
|
||||
{% if server_mode and server_mode != "production" %}Dev Mode{% endif %}
|
||||
{% if server_mode and server_mode != "production" %}
|
||||
<span class="text-danger">δ</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
{% include "base/menu.html" with flavor="top" %}
|
||||
</ul>
|
||||
</div>
|
||||
{% if not user.is_authenticated %}
|
||||
<a class="d-none d-sm-block mx-5 btn {% if server_mode and server_mode == "production" %} btn-warning {% else %} btn-info {% endif %}"
|
||||
rel="nofollow"
|
||||
href="{% url 'ietf.ietfauth.views.login' %}?next={{ request.get_full_path|removesuffix:'accounts/logout/'|urlencode }}">
|
||||
Sign
|
||||
in
|
||||
<div class="d-flex align-items-center">
|
||||
<a class="nav-link {% if server_mode and server_mode != "production" %}text-danger{% else %}text-warning{% endif %} d-none d-xl-inline me-xl-4"
|
||||
target="_blank"
|
||||
href="https://github.com/ietf-tools/datatracker/issues/new/choose">
|
||||
Report a bug
|
||||
<i class="bi bi-bug"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
<div class="d-flex d-none d-lg-block">
|
||||
<label aria-label="Document search">
|
||||
|
||||
{% if not user.is_authenticated %}
|
||||
<a class="btn me-1 {% if server_mode and server_mode == "production" %} btn-warning {% else %} btn-info {% endif %} d-none d-sm-block"
|
||||
rel="nofollow"
|
||||
href="{% url 'ietf.ietfauth.views.login' %}?next={{ request.get_full_path|removesuffix:'accounts/logout/'|urlencode }}">
|
||||
Sign in
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<label class="d-none d-md-block" aria-label="Document search">
|
||||
<input class="form-control select2-field"
|
||||
id="navbar-doc-search"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='docalias' doc_type='draft' %}"
|
||||
|
@ -137,7 +146,7 @@
|
|||
<span class="mx-2 text-danger">
|
||||
<i class="bi bi-bug"></i>
|
||||
Report a bug:
|
||||
<a class="text-reset" href="https://github.com/ietf-tools/datatracker/issues/new/choose">GitHub</a>
|
||||
<a class="text-reset" target="_blank" href="https://github.com/ietf-tools/datatracker/issues/new/choose">GitHub</a>
|
||||
{% if bugreport_email %}
|
||||
<a class="text-reset" href="mailto:{{ bugreport_email }}">Email</a>
|
||||
{% endif %}
|
||||
|
|
|
@ -420,7 +420,7 @@
|
|||
{% endif %}
|
||||
<li>
|
||||
<a class="dropdown-item text-danger {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||
href="https://github.com/ietf-tools/datatracker/issues/new/choose">
|
||||
target="_blank" href="https://github.com/ietf-tools/datatracker/issues/new/choose">
|
||||
<i class="bi bi-bug">
|
||||
</i>
|
||||
Report a bug
|
||||
|
|
|
@ -5,12 +5,18 @@
|
|||
<li class="nav-item dropdown">
|
||||
{% if flavor == "top" %}
|
||||
<a href="#"
|
||||
class="nav-link dropdown-toggle"
|
||||
class="nav-link dropdown-toggle{% if user.person.photo_thumb %} p-0{% endif %}"
|
||||
role="button"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
{% if user.is_authenticated %}
|
||||
{{ user }}
|
||||
{% if user.person.photo_thumb %}
|
||||
<img class="user-photo rounded-circle ms-1" width="40" height="40"
|
||||
src="{{ user.person.photo_thumb.url }}"
|
||||
alt="Photo of {{ user.person.name }}">
|
||||
{% else %}
|
||||
{{ user.username|split:'@'|first }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
User
|
||||
{% endif %}
|
||||
|
|
|
@ -241,7 +241,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{% if doc.get_state_slug != "active" and doc.get_state_slug != "rfc" %}
|
||||
<div class="float-end badge bg-warning">
|
||||
<div class="badge rounded-pill bg-warning float-end">
|
||||
Expired & archived
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -65,18 +65,17 @@
|
|||
{% if schedule.is_official_record %}This is the official schedule for a meeting in the past.{% endif %}
|
||||
Make a
|
||||
<a href="{% url "ietf.meeting.views.new_meeting_schedule" num=meeting.number owner=schedule.owner_email name=schedule.name %}">
|
||||
new agenda from this
|
||||
</a>.
|
||||
new agenda from this</a>.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if timeslot_groups|length == 0 %}
|
||||
<p>
|
||||
<p class="alert alert-info my-3">
|
||||
No timeslots exist for this meeting yet.
|
||||
</p>
|
||||
<p>
|
||||
<a href="{% url "ietf.meeting.views.edit_timeslots" num=meeting.number %}">
|
||||
Edit timeslots.
|
||||
<a class="btn btn-primary" href="{% url "ietf.meeting.views.edit_timeslots" num=meeting.number %}">
|
||||
Edit timeslots
|
||||
</a>
|
||||
</p>
|
||||
{% else %}
|
||||
|
@ -193,6 +192,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="preferences">
|
||||
<div class="my-3">
|
||||
<label class="sort-unassigned">
|
||||
Sort unassigned:
|
||||
<select name="sort_unassigned" class="form-select">
|
||||
|
@ -210,7 +210,8 @@
|
|||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<span class="toggle-inputs session-parent-toggles">
|
||||
</div>
|
||||
<div class="my-3 toggle-inputs session-parent-toggles">
|
||||
Show:
|
||||
{% for p in session_parents %}
|
||||
<label class="parent-{{ p.acronym }}">
|
||||
|
@ -221,7 +222,8 @@
|
|||
{{ p.acronym }}
|
||||
</label>
|
||||
{% endfor %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="my-3">
|
||||
{% if session_purposes|length > 1 %}
|
||||
<button id="session-toggle-modal-open"
|
||||
class="btn btn-primary"
|
||||
|
@ -248,6 +250,7 @@
|
|||
<i class="bi bi-check-square"></i>
|
||||
Timeslot Types
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="session-info-container"></div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{% load person_filters editor_tags %}
|
||||
{% load person_filters editor_tags ietf_filters textfilters %}
|
||||
<!-- [html-validate-disable-block no-inline-style -- FIXME: should style this better] -->
|
||||
<div id="session{{ session.pk }}"
|
||||
class="session {% if not session.group.parent.scheduling_color %}untoggleable-by-parent{% endif %} {% if session.parent_acronym %}parent-{{ session.parent_acronym }}{% endif %} purpose-{{ session.purpose.slug }} {% if session.readonly %}readonly{% endif %} {% if not session.on_agenda %}off-agenda{% endif %}"
|
||||
|
@ -47,7 +47,7 @@
|
|||
{% if not session.on_agenda %}· <i>off agenda</i>{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.comments %}<div class="comments">{{ session.comments|linebreaksbr }}</div>{% endif %}
|
||||
{% if session.comments %}<div class="comments">{{ session.comments|urlize_ietf_docs|linkify|linebreaksbr }}</div>{% endif %}
|
||||
{% if session.requested_by_person %}
|
||||
<div class="row">
|
||||
<div class="col-1">
|
||||
|
@ -71,11 +71,23 @@
|
|||
{% endif %}
|
||||
{% if session.formatted_constraints %}
|
||||
<div class="formatted-constraints">
|
||||
{% with ad=session.group.ads|first %}
|
||||
{% for constraint_name, values in session.formatted_constraints.items %}
|
||||
<div class="row">
|
||||
<div class="col-1" title="{{ constraint_name.name }}">{% constraint_icon_for constraint_name %}</div><div class="col">{{ values|join:", " }}</div>
|
||||
<div class="col-1" title="{{ constraint_name.name }}">{% constraint_icon_for constraint_name %}</div><div class="col">
|
||||
{% if constraint_name.slug != 'bethere' or not ad %}
|
||||
{{ values|join:", " }}
|
||||
{% else %}
|
||||
{% for val in values %}
|
||||
{% if val != ad.person.plain_name %}
|
||||
{{ val }}{% if forloop.revcounter > 2 or forloop.revcounter > 1 and values|last != ad.person.plain_name %}, {% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for s in session.other_sessions %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load ietf_filters static person_filters %}
|
||||
{% load ietf_filters static person_filters textfilters %}
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
@ -34,10 +34,10 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th scope="col" data-sort="group">Group</th>
|
||||
<th scope="col" data-sort="count">Length</th>
|
||||
<th scope="col" data-sort="num">Size</th>
|
||||
<th scope="col" class="d-none d-sm-table-cell" data-sort="requester">Requester</th>
|
||||
<th scope="col" class="d-none d-sm-table-cell" data-sort="ad">AD</th>
|
||||
<th scope="col" class="d-none d-lg-table-cell" data-sort="count">Length</th>
|
||||
<th scope="col" class="d-none d-lg-table-cell" data-sort="num">Size</th>
|
||||
<th scope="col" class="d-none d-lg-table-cell" data-sort="requester">Requester</th>
|
||||
<th scope="col" class="d-none d-lg-table-cell" data-sort="ad">AD</th>
|
||||
<th scope="col" data-sort="constraints">Constraints</th>
|
||||
<th scope="col" data-sort="special">Special requests</th>
|
||||
</tr>
|
||||
|
@ -58,34 +58,42 @@
|
|||
{{ session.group.acronym }}
|
||||
</a>
|
||||
{% if session.joint_with_groups.count %}joint with {{ session.joint_with_groups_acronyms|join:' ' }}{% endif %}
|
||||
{% if session.requested_duration %}
|
||||
<div class="d-lg-none">
|
||||
<i class="bi bi-stopwatch-fill"></i> {{ session.requested_duration|stringformat:"s"|slice:"0:4" }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.attendees %}
|
||||
<div class="d-lg-none">
|
||||
<i class="bi bi-people-fill"></i> {{ session.attendees }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if session.group.state.slug != "active" %}
|
||||
<br><span class="badge rounded-pill bg-success">{{ session.group.state.name }}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<td class="d-none d-lg-table-cell">
|
||||
{% if session.requested_duration %}{{ session.requested_duration|stringformat:"s"|slice:"0:4" }}{% endif %}
|
||||
</td>
|
||||
<td>{{ session.attendees|default:"" }}</td>
|
||||
<td class="d-none d-sm-table-cell">{% person_link session.requested_by_person %}</td>
|
||||
<td class="d-none d-sm-table-cell">
|
||||
<td class="d-none d-lg-table-cell">{{ session.attendees|default:"" }}</td>
|
||||
<td class="d-none d-lg-table-cell">{% person_link session.requested_by_person with_email=False %}</td>
|
||||
<td class="d-none d-lg-table-cell">
|
||||
{% if session.group.ad_role %}
|
||||
{% person_link session.group.ad_role.person %}
|
||||
{% person_link session.group.ad_role.person with_email=False %}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if session.requested_duration %}
|
||||
{% regroup session.constraints by name as prioritized_constraints %}
|
||||
{% for grouped_constraint in prioritized_constraints %}
|
||||
{% if not forloop.first %}
|
||||
{% ifchanged grouped_constraint.grouper %}
|
||||
<br>
|
||||
{% endifchanged %}
|
||||
{% endif %}
|
||||
<div{% if not forloop.last %} class="mb-2"{% endif %}>
|
||||
<b>{{ grouped_constraint.grouper.name }}:</b>
|
||||
{% for constraint in grouped_constraint.list %}
|
||||
{% with constraint.target.parent.id as constraint_target_parent_id %}
|
||||
{% with constraint.source.parent.id as constraint_source_parent_id %}
|
||||
{% with constraint.person as constraint_person %}
|
||||
{% if constraint_target_parent_id == constraint_source_parent_id and not constraint_person %}<b>{% endif %}
|
||||
{% if constraint.name.slug == "bethere" %}{% person_link constraint_person %}
|
||||
{% else %}
|
||||
{% if constraint.name.slug == "bethere" %}{% person_link constraint_person with_email=False %}{% else %}
|
||||
{% with constraint.name.slug as constraint_name_slug %}
|
||||
<span class="{% if constraint_name_slug == 'chair_conflict' %}text-danger{% elif constraint_name_slug == 'tech_overlap' %}text-info{% elif constraint_name_slug == 'key_participant' %}text-success{% else %}{{ constraint_name_slug }}{% endif %}">
|
||||
{% endwith %}
|
||||
|
@ -94,11 +102,12 @@
|
|||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if session.comments %}{{ session.comments|linebreaksbr }}{% endif %}
|
||||
{% if session.comments %}{{ session.comments|urlize_ietf_docs|linkify|linebreaksbr }}{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if forloop.last %}</tbody>{% endif %}
|
||||
|
@ -108,4 +117,4 @@
|
|||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -889,7 +889,8 @@ class IetfTestRunner(DiscoverRunner):
|
|||
self.config_file = {}
|
||||
for kind in self.batches:
|
||||
self.config_file[kind] = tempfile.NamedTemporaryFile(
|
||||
prefix="html-validate-config-"
|
||||
prefix="html-validate-config-",
|
||||
suffix=".json"
|
||||
)
|
||||
self.config_file[kind].write(json.dumps(config[kind]).encode())
|
||||
self.config_file[kind].flush()
|
||||
|
|
26
package.json
26
package.json
|
@ -22,10 +22,10 @@
|
|||
"@fullcalendar/timegrid": "5.11.3",
|
||||
"@fullcalendar/vue3": "5.11.2",
|
||||
"@popperjs/core": "2.11.6",
|
||||
"bootstrap": "5.2.1",
|
||||
"bootstrap": "5.2.2",
|
||||
"bootstrap-icons": "1.9.1",
|
||||
"browser-fs-access": "0.31.0",
|
||||
"caniuse-lite": "1.0.30001393",
|
||||
"caniuse-lite": "1.0.30001414",
|
||||
"d3": "7.6.1",
|
||||
"file-saver": "2.0.5",
|
||||
"highcharts": "10.2.1",
|
||||
|
@ -35,12 +35,12 @@
|
|||
"list.js": "2.3.1",
|
||||
"lodash": "4.17.21",
|
||||
"lodash-es": "4.17.21",
|
||||
"luxon": "3.0.3",
|
||||
"luxon": "3.0.4",
|
||||
"moment": "2.29.4",
|
||||
"moment-timezone": "0.5.37",
|
||||
"ms": "2.1.3",
|
||||
"murmurhash-js": "1.0.0",
|
||||
"naive-ui": "2.33.2",
|
||||
"naive-ui": "2.33.3",
|
||||
"pinia": "2.0.22",
|
||||
"pinia-plugin-persist": "1.0.0",
|
||||
"select2": "4.1.0-rc.0",
|
||||
|
@ -48,34 +48,34 @@
|
|||
"send": "0.18.0",
|
||||
"slugify": "1.6.5",
|
||||
"sortablejs": "1.15.0",
|
||||
"vue": "3.2.39",
|
||||
"vue": "3.2.40",
|
||||
"vue-router": "4.1.5",
|
||||
"zxcvbn": "4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "7.5.0",
|
||||
"@parcel/transformer-sass": "2.7.0",
|
||||
"@percy/cli": "1.10.2",
|
||||
"@percy/cli": "1.10.4",
|
||||
"@percy/cypress": "3.1.2",
|
||||
"@vitejs/plugin-vue": "2.3.4",
|
||||
"@vue/test-utils": "2.0.2",
|
||||
"@vue/test-utils": "2.1.0",
|
||||
"browserlist": "latest",
|
||||
"c8": "7.12.0",
|
||||
"cypress": "10.7.0",
|
||||
"cypress": "10.9.0",
|
||||
"cypress-real-events": "1.7.1",
|
||||
"eslint": "8.23.0",
|
||||
"eslint": "8.24.0",
|
||||
"eslint-config-standard": "17.0.0",
|
||||
"eslint-plugin-cypress": "2.12.1",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"eslint-plugin-n": "15.2.5",
|
||||
"eslint-plugin-n": "15.3.0",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.0.1",
|
||||
"eslint-plugin-vue": "9.4.0",
|
||||
"html-validate": "7.3.3",
|
||||
"eslint-plugin-vue": "9.5.1",
|
||||
"html-validate": "7.5.0",
|
||||
"jquery-migrate": "3.4.0",
|
||||
"parcel": "2.7.0",
|
||||
"pug": "3.0.2",
|
||||
"sass": "1.54.9",
|
||||
"sass": "1.55.0",
|
||||
"seedrandom": "3.0.5",
|
||||
"vite": "2.9.15"
|
||||
},
|
||||
|
|
|
@ -65,4 +65,4 @@ tqdm>=4.64.0
|
|||
Unidecode>=1.3.4
|
||||
weasyprint>=52.5,<53 # Datatracker tests past on 54, but xml2rfc tests do not.
|
||||
xml2rfc>=3.12.4
|
||||
xym>=0.5,<1.0
|
||||
xym>=0.6,<1.0
|
||||
|
|
468
yarn.lock
468
yarn.lock
|
@ -126,9 +126,9 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^1.3.1":
|
||||
version: 1.3.1
|
||||
resolution: "@eslint/eslintrc@npm:1.3.1"
|
||||
"@eslint/eslintrc@npm:^1.3.2":
|
||||
version: 1.3.2
|
||||
resolution: "@eslint/eslintrc@npm:1.3.2"
|
||||
dependencies:
|
||||
ajv: ^6.12.4
|
||||
debug: ^4.3.2
|
||||
|
@ -139,7 +139,7 @@ __metadata:
|
|||
js-yaml: ^4.1.0
|
||||
minimatch: ^3.1.2
|
||||
strip-json-comments: ^3.1.1
|
||||
checksum: 9844dcc58a44399649926d5a17a2d53d529b80d3e8c3e9d0964ae198bac77ee6bb1cf44940f30cd9c2e300f7568ec82500be42ace6cacefb08aebf9905fe208e
|
||||
checksum: 2074dca47d7e1c5c6323ff353f690f4b25d3ab53fe7d27337e2592d37a894cf60ca0e85ca66b50ff2db0bc7e630cc1e9c7347d65bb185b61416565584c38999c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -261,14 +261,14 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@humanwhocodes/config-array@npm:^0.10.4":
|
||||
version: 0.10.4
|
||||
resolution: "@humanwhocodes/config-array@npm:0.10.4"
|
||||
"@humanwhocodes/config-array@npm:^0.10.5":
|
||||
version: 0.10.7
|
||||
resolution: "@humanwhocodes/config-array@npm:0.10.7"
|
||||
dependencies:
|
||||
"@humanwhocodes/object-schema": ^1.2.1
|
||||
debug: ^4.1.1
|
||||
minimatch: ^3.0.4
|
||||
checksum: d480e5d57e6d787565b6cff78e27c3d1b380692d4ffb0ada7d7f5957a56c9032f034da05a3e443065dbd0671ebf4d859036ced34e96b325bbc1badbae3c05300
|
||||
checksum: 009d64be8d5bd098ff04e10af79e34f5633245250581fca032fac12a8667b2df8e7d169e69c05bff4d83ea3dd3c7d2d0e05ea9b94d89a7d092e26530caf6f8a3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1473,128 +1473,128 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-app@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-app@npm:1.10.2"
|
||||
"@percy/cli-app@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-app@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
"@percy/cli-exec": 1.10.2
|
||||
checksum: b0bbbddec42f99e4783eec54b44d1c81a159aaee0a6a840bd4118cad7f6237c614191303973d8a2d73656fe0bce2f3b63a76443e96803707f754df027e547696
|
||||
"@percy/cli-command": 1.10.4
|
||||
"@percy/cli-exec": 1.10.4
|
||||
checksum: 81db381f2e8fea89be0fa8ad19cca1b4a643ec40d7a51a6b0b75c453a35df511ea225c2094ed00df2f398a1b6b65b9563cc9558bfcb6c3897f507ce4039c0108
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-build@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-build@npm:1.10.2"
|
||||
"@percy/cli-build@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-build@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
checksum: f5ac91772d4932940b504a7313191666d642caae25b8209d0f8845d803527ec4738b909f43f0a4df3beda57bc706bfc3c3ef4ec731be234857c296416c957e4a
|
||||
"@percy/cli-command": 1.10.4
|
||||
checksum: c6aa64bbb3f5195f390b5f984cb212b4647db9975aa48f8356760a51956a8852e9c6b9a3903f4e7fc8a0ce596c702acac33bf238cae84387c5c0947bf600f655
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-command@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-command@npm:1.10.2"
|
||||
"@percy/cli-command@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-command@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/config": 1.10.2
|
||||
"@percy/core": 1.10.2
|
||||
"@percy/logger": 1.10.2
|
||||
"@percy/config": 1.10.4
|
||||
"@percy/core": 1.10.4
|
||||
"@percy/logger": 1.10.4
|
||||
bin:
|
||||
percy-cli-readme: bin/readme.js
|
||||
checksum: 696e47411ad72de3b249bdc714d98620976aa174787786028aa420beac6f6c15c19c9e250a89b65446a85aaad7d8126d2bf25394099b96d293eee8782c79313d
|
||||
checksum: d96a572e2408b76ab7ba3b2d17cb8a8ea0de01213adf3e1024bf52bec9ef187a5e4797ef55086a333d35c7a82af5852494aa006ef39a783aac1dfe8c2a44e143
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-config@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-config@npm:1.10.2"
|
||||
"@percy/cli-config@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-config@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
checksum: 235b6f64569855fc363655b3e10bcdd5dbde23030866f74043b3b67023653e435b5ab37cc2c0f522150919f62d98eb4a658df8d840e3d978ba3ac03ce4e09dac
|
||||
"@percy/cli-command": 1.10.4
|
||||
checksum: 901df758d4567c50c28a953dc84e8ced1a4e97b601d702cbd88f96e02aed3f85abe2bdfce1da6cca84dbf19de5285a1f2017e124b662072153da241bc8250baa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-exec@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-exec@npm:1.10.2"
|
||||
"@percy/cli-exec@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-exec@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
"@percy/cli-command": 1.10.4
|
||||
cross-spawn: ^7.0.3
|
||||
which: ^2.0.2
|
||||
checksum: 7a3b4f3292a17bf385c178c88d505f09dd1688ff80324d3d0f18a77ab1fe617fddb32ab7163cd80a1fbc49264532a4a56fdc460d91855aba2a9b27d93062a0fd
|
||||
checksum: d1c77ce6c944f88155891b936874e8ab5d65b542f85e2d8ad333950824934027abf97aa10075429cce606809d4effc2359dca29f1ac390e803f1bca698fb7b47
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-snapshot@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-snapshot@npm:1.10.2"
|
||||
"@percy/cli-snapshot@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-snapshot@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
"@percy/cli-command": 1.10.4
|
||||
yaml: ^2.0.0
|
||||
checksum: 9c1649193acb9fff61a384d3df9fa474a8fe96f25427e10e4f1e954415291ce752e4931ab4f65dccff99e1d02497d8ebf532d670c3f703b2ea6441dc946e838e
|
||||
checksum: 51542704a056894b19b36d40663ca813661d952175657ffdb5508ed430cfaf45d1740d8e4237b704982391c188debc6eb16ccb4eb1ed63ca3aaea2b5847f61ab
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli-upload@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli-upload@npm:1.10.2"
|
||||
"@percy/cli-upload@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli-upload@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-command": 1.10.2
|
||||
"@percy/cli-command": 1.10.4
|
||||
fast-glob: ^3.2.11
|
||||
image-size: ^1.0.0
|
||||
checksum: 032646d26bbea480abe0114a0fc45faecfcd314ceab09b352280c2a02b5ce97f9aa3f39882e85ad514a5f53abb1d5dd158703ede831c31951f33a2b28be470c7
|
||||
checksum: 518e3e2414faa63863e7cca0edf730073a78c7faf024cd34c8821a60540d203575778ce75c4194086cfa291b130b11814b8008eeb320bbdceadbc8f09375e03e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/cli@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/cli@npm:1.10.2"
|
||||
"@percy/cli@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/cli@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/cli-app": 1.10.2
|
||||
"@percy/cli-build": 1.10.2
|
||||
"@percy/cli-command": 1.10.2
|
||||
"@percy/cli-config": 1.10.2
|
||||
"@percy/cli-exec": 1.10.2
|
||||
"@percy/cli-snapshot": 1.10.2
|
||||
"@percy/cli-upload": 1.10.2
|
||||
"@percy/client": 1.10.2
|
||||
"@percy/logger": 1.10.2
|
||||
"@percy/cli-app": 1.10.4
|
||||
"@percy/cli-build": 1.10.4
|
||||
"@percy/cli-command": 1.10.4
|
||||
"@percy/cli-config": 1.10.4
|
||||
"@percy/cli-exec": 1.10.4
|
||||
"@percy/cli-snapshot": 1.10.4
|
||||
"@percy/cli-upload": 1.10.4
|
||||
"@percy/client": 1.10.4
|
||||
"@percy/logger": 1.10.4
|
||||
bin:
|
||||
percy: bin/run.cjs
|
||||
checksum: 1d75dc9115daa502cfafc6581241d75ebda1691c50eb4f3b88214f6a6fd925d424d6b56c4dd33a569036ef330f1f79ac2469cb5b86fc91c77eb70651c3072d36
|
||||
checksum: 3164e88bbc6966e046e60e625f6d692f478826b691fe43836934bdb321f607cdbdec0a3b535ca6b5bd1fb7ad8a58e07d5017603d083a1c9eabffe98314881b7e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/client@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/client@npm:1.10.2"
|
||||
"@percy/client@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/client@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/env": 1.10.2
|
||||
"@percy/logger": 1.10.2
|
||||
checksum: 023bda9547eb2a262422a046508bdd718968576892ceac690070b62757c9d738bce4c8a48c93eb2e0564c1ecbfaa0260bb599ad388a034de30c9d4387baacf25
|
||||
"@percy/env": 1.10.4
|
||||
"@percy/logger": 1.10.4
|
||||
checksum: 8970cb0fee03c118bc728e931b6645b48b2e20792652ab2f34a7602c0d031a0f9558599a0e44fa8d67103de7cd745408adc1c23c45813d9239eb9892eec61459
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/config@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/config@npm:1.10.2"
|
||||
"@percy/config@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/config@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/logger": 1.10.2
|
||||
"@percy/logger": 1.10.4
|
||||
ajv: ^8.6.2
|
||||
cosmiconfig: ^7.0.0
|
||||
yaml: ^2.0.0
|
||||
checksum: f464a34f2ae335e0c2f3072e82d9ab2cc7b58351d72bcc9beef459b159318b7793690102bf15b1a9e95f9e952c1228469829a9d78a3c56acc90e33024b5496fd
|
||||
checksum: 545e2fd4ab2694a7142ea3d4117fa8009dabb71bf90c20bca102ccab397ec7553cb6e6465a1792f2abd3312ce9ac6487a1417d280d177a4995a42be784246f94
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/core@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/core@npm:1.10.2"
|
||||
"@percy/core@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/core@npm:1.10.4"
|
||||
dependencies:
|
||||
"@percy/client": 1.10.2
|
||||
"@percy/config": 1.10.2
|
||||
"@percy/dom": 1.10.2
|
||||
"@percy/logger": 1.10.2
|
||||
"@percy/client": 1.10.4
|
||||
"@percy/config": 1.10.4
|
||||
"@percy/dom": 1.10.4
|
||||
"@percy/logger": 1.10.4
|
||||
content-disposition: ^0.5.4
|
||||
cross-spawn: ^7.0.3
|
||||
extract-zip: ^2.0.1
|
||||
|
@ -1604,7 +1604,7 @@ __metadata:
|
|||
path-to-regexp: ^6.2.0
|
||||
rimraf: ^3.0.2
|
||||
ws: ^8.0.0
|
||||
checksum: 14f64bb40bbe7bebdc4403e343e78ba49b8a021034bb8f357dca3aa03483f4d8869347fb8ae43b6133f9a7658de601d423ad250d1dc238b7cc52611bff87875b
|
||||
checksum: 39f6de1cf57c086dca7bad37c09f88775e14b942a49c96966b0b277b63fe36bad25bb641c7d76b551e99ac58ea682a0c43894d6603d00a0a9dceb2359d5c56be
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1619,24 +1619,24 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/dom@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/dom@npm:1.10.2"
|
||||
checksum: f215bb23463ba8bc77129fc8cc1631bc78dbd8f51a1d74655c736b89d08f8c67222bc18fb056fa89b862a13be9447f8e18bebf65186dc25fb48a2e2be31dfb56
|
||||
"@percy/dom@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/dom@npm:1.10.4"
|
||||
checksum: 2c1b4da7fab2c3cb150805c5cc35436e283a23dff42f63480d340d25f02662dfb05a733bbe69e585b426670f2c2f3ebd8b24708096651885aa5be4ad53731557
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/env@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/env@npm:1.10.2"
|
||||
checksum: 44de98d21b08cfaf8897a9016c490d0e8fde760b1c193abcacc28c6a5ded5a3420e006a0afbd509026ea4dd62c4c93b9013e4041fa3d20b769551943775945d5
|
||||
"@percy/env@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/env@npm:1.10.4"
|
||||
checksum: c2a9f6b384b38d0fb4ce4c3ebdd2d7b7350fdaf6ed09b9466f9cf19865707a12663af932559524ae8f7c4b7f28ea6dadae38599451b8cf53737ec30712e942ee
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@percy/logger@npm:1.10.2":
|
||||
version: 1.10.2
|
||||
resolution: "@percy/logger@npm:1.10.2"
|
||||
checksum: 430ef643e96dbac25c25d290cee943a9ef27b2562f1daa0cd56036873e47db15613aca1f75aef0492093eff44db242a18001442c4ff2bcecba1c9edfdf8dd614
|
||||
"@percy/logger@npm:1.10.4":
|
||||
version: 1.10.4
|
||||
resolution: "@percy/logger@npm:1.10.4"
|
||||
checksum: 4c6ade39028842ce935dcb023aba27b7fa69864ae3dd718d39d64b9fc773b6a1d0c6465dbea369b5566e1edfcd9b835777d25b3cd929aa1bd3696a677dd94672
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1790,53 +1790,53 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-core@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/compiler-core@npm:3.2.39"
|
||||
"@vue/compiler-core@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/compiler-core@npm:3.2.40"
|
||||
dependencies:
|
||||
"@babel/parser": ^7.16.4
|
||||
"@vue/shared": 3.2.39
|
||||
"@vue/shared": 3.2.40
|
||||
estree-walker: ^2.0.2
|
||||
source-map: ^0.6.1
|
||||
checksum: dd70ed60b14faba2f46a2a99ddf20819db7dff124dd49ec15ba76ea3c6d8311feca4256d4dac8e8316c6670434cbb7c0c6a2cb5f6e97b321ba42ff454102c3be
|
||||
checksum: 2683bf13ef93701af1ca4850e887c8d4d67e5583b9c426fc2b08b5512df090bc464955f031cca9f52c11cc6ad49f1ab682011fdf3ba0b6c63b5ae8bea4e68c69
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-dom@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/compiler-dom@npm:3.2.39"
|
||||
"@vue/compiler-dom@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/compiler-dom@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/compiler-core": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
checksum: 505a8f8515f8551795e3a01859d451645e0bd77be2d70d5c48f6edd02ebc255d911230c66ccfc478fd0218ab8a7b69bd99e2c12b406db4889285058f52d13363
|
||||
"@vue/compiler-core": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
checksum: d928a16ebdda9d91a579546d108c9399f8c9a5c9c976196cfefa32f10c0ecb3111233c3291ba05898def85fcfccdc71e3446b977a7cdbc0d47d5d47b0dac75a3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-sfc@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/compiler-sfc@npm:3.2.39"
|
||||
"@vue/compiler-sfc@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/compiler-sfc@npm:3.2.40"
|
||||
dependencies:
|
||||
"@babel/parser": ^7.16.4
|
||||
"@vue/compiler-core": 3.2.39
|
||||
"@vue/compiler-dom": 3.2.39
|
||||
"@vue/compiler-ssr": 3.2.39
|
||||
"@vue/reactivity-transform": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
"@vue/compiler-core": 3.2.40
|
||||
"@vue/compiler-dom": 3.2.40
|
||||
"@vue/compiler-ssr": 3.2.40
|
||||
"@vue/reactivity-transform": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
estree-walker: ^2.0.2
|
||||
magic-string: ^0.25.7
|
||||
postcss: ^8.1.10
|
||||
source-map: ^0.6.1
|
||||
checksum: b82755eec28c03800e38b99603a90b85af03d670558c845f9916650fea5cac8c2eb1511d66aa71e602ca9af8d2795e9f6a16fc867efce8c8694a6ea106f0ac95
|
||||
checksum: 96cbfd078ad9c5718afced84a1a46dfed87f61bb30ff50ebb929331470d11e672d6a090ad5766ff1e60a5287b7596be31f925af44b6b1bdf69b6f14e938ae7e2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/compiler-ssr@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/compiler-ssr@npm:3.2.39"
|
||||
"@vue/compiler-ssr@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/compiler-ssr@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/compiler-dom": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
checksum: 27323a548df3696d38a8b029b55e136fc94195f1a9e12a25161a8d524cc779dbcc5f69db525a8d86f6ed28326f9f8595db5ba94ccaa7c8f127f752be36bffe5f
|
||||
"@vue/compiler-dom": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
checksum: 026461fcee54cf9968b1e12c32dada6dcde0a322919aa5a2c2e6e13cff7b6b2bdbc06860796895a8deef03ed1f8000e4320878576c498a1f218a62aa3e1c0bf6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1854,74 +1854,74 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/reactivity-transform@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/reactivity-transform@npm:3.2.39"
|
||||
"@vue/reactivity-transform@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/reactivity-transform@npm:3.2.40"
|
||||
dependencies:
|
||||
"@babel/parser": ^7.16.4
|
||||
"@vue/compiler-core": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
"@vue/compiler-core": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
estree-walker: ^2.0.2
|
||||
magic-string: ^0.25.7
|
||||
checksum: b609d9367d875bf326ca8f31779407723cad2b2b4a26e7fb8860089c720e1b0bb8d5fe19604e8baff1d9ffc1fdbafb21a43db9063a24ae4ad30cb70b1c712de3
|
||||
checksum: b86fc29b52f2460801a3c820370104b734b33cc3a66dbe0ad389a00a62b7a1069121b1ef5dfa50ca3530cbfa98c158743eee0e25af54ca45806f9497757db8c0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/reactivity@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/reactivity@npm:3.2.39"
|
||||
"@vue/reactivity@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/reactivity@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/shared": 3.2.39
|
||||
checksum: c4d440a53b2196e46129271affdb22182586a8123bc44d082468cd089242023890bccd6eaa1acc72919ea2c1febad979504be737720632afefee6ec6b75370a9
|
||||
"@vue/shared": 3.2.40
|
||||
checksum: 927d22b424b63a14234810a3b8e4e9127b7238a7cb2fbd749180279048a109348a29fc724fd9d636a6e09b5f4c902f71c789f081d3ab9b4473faedc6a03d7865
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/runtime-core@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/runtime-core@npm:3.2.39"
|
||||
"@vue/runtime-core@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/runtime-core@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/reactivity": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
checksum: 13f6b92d70fb3bc8b12caef9eaf9cc1fb3aa1f1bd07e2392013f02d65c74b09d4121e62d149d7f7c316ef2c6b3496c9ec828795286480f08e5f45e910b0f2671
|
||||
"@vue/reactivity": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
checksum: 47c4918c1294a3dc9b50effac8fb0af4ae34476a9bf443774f66cd18230e44b6b6d1cb49657ea5670f04691fc116a1040356492393dd43523b43fd90be81078a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/runtime-dom@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/runtime-dom@npm:3.2.39"
|
||||
"@vue/runtime-dom@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/runtime-dom@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/runtime-core": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
"@vue/runtime-core": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
csstype: ^2.6.8
|
||||
checksum: 0c47f941148a000ac0cb93add51edb08eca5ae16fa7898dd070300f22e4ba77533c85342f0ceca0cab8637b80b1f92cfab10adb2160e4c6dd4be4a5b27ae1ff3
|
||||
checksum: 4615d00cc4e2e19dc3e6e2baf5fa0cbab7d33fbbd7550b42264b6ef2e2ef5b750ef0d0c98591c10fea60d69fc33444ba4824954bce38abfa3473785a58d74c80
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/server-renderer@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/server-renderer@npm:3.2.39"
|
||||
"@vue/server-renderer@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/server-renderer@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/compiler-ssr": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
"@vue/compiler-ssr": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
peerDependencies:
|
||||
vue: 3.2.39
|
||||
checksum: ae6ccd08b85ad8c18cae461404ad8c4b3b602c779fe07ab3a69e0a9a4cef274ea8dcd662fa365f3717f67d4ba02a9eac88dd2ebf5194072ae43dd5db99c2cb2c
|
||||
vue: 3.2.40
|
||||
checksum: f9d53aefcace97b9e6d20de2d9bc106112bd0ff0ef849a104996fc1256e994b64e33e91853ba7bc716d4f75a2ade81b57f3fb1482eba07324eb7cedbd0dab96d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/shared@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "@vue/shared@npm:3.2.39"
|
||||
checksum: 0bf9f5b4851b634cfae92c08d64173c2db674bd817424473d28fc58af7c17c54a255f9b3e837d3857e1e62f9092ab1d74b4714237e45c94fcd46f92155ef653f
|
||||
"@vue/shared@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "@vue/shared@npm:3.2.40"
|
||||
checksum: d91a1e12ffb106a444dcb42c0a54d39f6688f98151dc3b77e8da1e7d3cfd09e1761268d11e7f920f233b43162e727d06f3af4408ef59c53ac2dce9c1d2881511
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vue/test-utils@npm:2.0.2":
|
||||
version: 2.0.2
|
||||
resolution: "@vue/test-utils@npm:2.0.2"
|
||||
"@vue/test-utils@npm:2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "@vue/test-utils@npm:2.1.0"
|
||||
peerDependencies:
|
||||
vue: ^3.0.1
|
||||
checksum: 384bdd4231d3f3eaa02e2ffaef2e2c90934cd9f44ab53fdfe1e9603fbe9a0e702c4a15e8bdc0fc907af210f23abe35fc43a4814598ed0a297af4fa144161f87f
|
||||
checksum: 4612568209cefca8d8839f364b62126d34d57d4de4f4ef8b8f83588f3c12a0144872ac54aa4bb24a5a597447d5d732b9fd63e71d57a6dec3bcb784352db70706
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -2312,12 +2312,12 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bootstrap@npm:5.2.1":
|
||||
version: 5.2.1
|
||||
resolution: "bootstrap@npm:5.2.1"
|
||||
"bootstrap@npm:5.2.2":
|
||||
version: 5.2.2
|
||||
resolution: "bootstrap@npm:5.2.2"
|
||||
peerDependencies:
|
||||
"@popperjs/core": ^2.11.6
|
||||
checksum: f7d733ae5d27177d813adb2ac2158f08069a558d8f664b3db8857aba0ab07423d83b4276dba6123dde52309e707bb06ec13e040fb905eaa293c53453110bb802
|
||||
checksum: 14e6df28feb975dc10702cac0a6c2a21132a6e4e5562e31cdae1db3970e287ed29001020066b61d96b2cea2a45ecf44c08c8c26bc84a31cdeabec0a9be6b9389
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -2505,10 +2505,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:1.0.30001393":
|
||||
version: 1.0.30001393
|
||||
resolution: "caniuse-lite@npm:1.0.30001393"
|
||||
checksum: 72b7cd81c51f41965f2fbdbb20729d71f2bd5e376d9b4effa22616dd2707640b8676862e8db3db83b76c3bcf2aaefc9ebd5991a10eeb483b460322de5548b98e
|
||||
"caniuse-lite@npm:1.0.30001414":
|
||||
version: 1.0.30001414
|
||||
resolution: "caniuse-lite@npm:1.0.30001414"
|
||||
checksum: 97210cfd15ded093b20c33d35bef9711a88402c3345411dad420c991a41a3e38ad17fd66721e8334c86e9b2e4aa2c1851d3631f1441afb73b92d93b2b8ca890d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -2900,9 +2900,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cypress@npm:10.7.0":
|
||||
version: 10.7.0
|
||||
resolution: "cypress@npm:10.7.0"
|
||||
"cypress@npm:10.9.0":
|
||||
version: 10.9.0
|
||||
resolution: "cypress@npm:10.9.0"
|
||||
dependencies:
|
||||
"@cypress/request": ^2.88.10
|
||||
"@cypress/xvfb": ^1.2.4
|
||||
|
@ -2923,7 +2923,7 @@ browserlist@latest:
|
|||
dayjs: ^1.10.4
|
||||
debug: ^4.3.2
|
||||
enquirer: ^2.3.6
|
||||
eventemitter2: ^6.4.3
|
||||
eventemitter2: 6.4.7
|
||||
execa: 4.1.0
|
||||
executable: ^4.1.1
|
||||
extract-zip: 2.0.1
|
||||
|
@ -2948,7 +2948,7 @@ browserlist@latest:
|
|||
yauzl: ^2.10.0
|
||||
bin:
|
||||
cypress: bin/cypress
|
||||
checksum: ef8a5ae54f3404f7926e1e248ba7a27c7f66e654a9603bf9df6366731d8dd75455f6ec9cc34d7e55e1a8c3cb8e0e36ce59add81b7b14466f2063cfe45e6c00f4
|
||||
checksum: 79e3dccbb82d0b0c92bb8888682766a9738374f473cf2e9a04825a6b3dbe4420c57948cabaf757af0929192a8e61b7f08b32d7f6ee0c3cddf2736cf4f408edc1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4008,9 +4008,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-n@npm:15.2.5":
|
||||
version: 15.2.5
|
||||
resolution: "eslint-plugin-n@npm:15.2.5"
|
||||
"eslint-plugin-n@npm:15.3.0":
|
||||
version: 15.3.0
|
||||
resolution: "eslint-plugin-n@npm:15.3.0"
|
||||
dependencies:
|
||||
builtins: ^5.0.1
|
||||
eslint-plugin-es: ^4.1.0
|
||||
|
@ -4022,7 +4022,7 @@ browserlist@latest:
|
|||
semver: ^7.3.7
|
||||
peerDependencies:
|
||||
eslint: ">=7.0.0"
|
||||
checksum: 3be265957b3dda6a049841803335c17689cf98a4b3859eeed3e57b44850b241e7d20640890b2dea7e83816c938fc16274bf78d370f571e211d00d9a3c513f281
|
||||
checksum: a5a4c778804a0d343ca904c917b8e583b4df28aaad593ea6d41893befac45d4f92ab38d895aac018ac757583697d38e99397d4deda783ec8ff650bb2041d23c8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4051,9 +4051,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-vue@npm:9.4.0":
|
||||
version: 9.4.0
|
||||
resolution: "eslint-plugin-vue@npm:9.4.0"
|
||||
"eslint-plugin-vue@npm:9.5.1":
|
||||
version: 9.5.1
|
||||
resolution: "eslint-plugin-vue@npm:9.5.1"
|
||||
dependencies:
|
||||
eslint-utils: ^3.0.0
|
||||
natural-compare: ^1.4.0
|
||||
|
@ -4064,7 +4064,7 @@ browserlist@latest:
|
|||
xml-name-validator: ^4.0.0
|
||||
peerDependencies:
|
||||
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||
checksum: 1eb085e7d52285eff05e4a3f0f4d65619e943eb7e976b0ef59c3adc75bf4a089df8e8cdba223cf27e2623c0fc6b306e3b1ca460d0ce27cc421ca91b7880eb0d8
|
||||
checksum: 36433328710c241bf363291859b6caf1c74dd18d75b1b1fe5bac9706e4d612e3dea79eef5acccf06b2df9d9b3faf9343c1b3e1d9edbf6465fd9752f3c0a87ee4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4119,12 +4119,12 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:8.23.0":
|
||||
version: 8.23.0
|
||||
resolution: "eslint@npm:8.23.0"
|
||||
"eslint@npm:8.24.0":
|
||||
version: 8.24.0
|
||||
resolution: "eslint@npm:8.24.0"
|
||||
dependencies:
|
||||
"@eslint/eslintrc": ^1.3.1
|
||||
"@humanwhocodes/config-array": ^0.10.4
|
||||
"@eslint/eslintrc": ^1.3.2
|
||||
"@humanwhocodes/config-array": ^0.10.5
|
||||
"@humanwhocodes/gitignore-to-minimatch": ^1.0.2
|
||||
"@humanwhocodes/module-importer": ^1.0.1
|
||||
ajv: ^6.10.0
|
||||
|
@ -4142,7 +4142,6 @@ browserlist@latest:
|
|||
fast-deep-equal: ^3.1.3
|
||||
file-entry-cache: ^6.0.1
|
||||
find-up: ^5.0.0
|
||||
functional-red-black-tree: ^1.0.1
|
||||
glob-parent: ^6.0.1
|
||||
globals: ^13.15.0
|
||||
globby: ^11.1.0
|
||||
|
@ -4151,6 +4150,7 @@ browserlist@latest:
|
|||
import-fresh: ^3.0.0
|
||||
imurmurhash: ^0.1.4
|
||||
is-glob: ^4.0.0
|
||||
js-sdsl: ^4.1.4
|
||||
js-yaml: ^4.1.0
|
||||
json-stable-stringify-without-jsonify: ^1.0.1
|
||||
levn: ^0.4.1
|
||||
|
@ -4164,7 +4164,7 @@ browserlist@latest:
|
|||
text-table: ^0.2.0
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: ff6075daa28d817a7ac4508f31bc108a04d9ab5056608c8651b5bf9cfea5d708ca16dea6cdab2c3c0ae99b0bf0e726af8504eaa8e17c8e12e242cb68237ead64
|
||||
checksum: ca293ce7116599b742d7ab4d43db469beec22f40dd272092d809498be3cff3a7c567769f9763bdf6799aac13dd53447b93a99629b7b54092783046eb57eaced6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4236,10 +4236,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eventemitter2@npm:^6.4.3":
|
||||
version: 6.4.5
|
||||
resolution: "eventemitter2@npm:6.4.5"
|
||||
checksum: 84504f9cf0cc30205cdd46783fe9df3733435e5097f13070b678023110b5ef07847651808ae280cd94c42cd5976880211c7a40321a8ff8fa56f7c5f9c5c11960
|
||||
"eventemitter2@npm:6.4.7":
|
||||
version: 6.4.7
|
||||
resolution: "eventemitter2@npm:6.4.7"
|
||||
checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4525,13 +4525,6 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"functional-red-black-tree@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "functional-red-black-tree@npm:1.0.1"
|
||||
checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"gauge@npm:^4.0.3":
|
||||
version: 4.0.4
|
||||
resolution: "gauge@npm:4.0.4"
|
||||
|
@ -4791,9 +4784,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"html-validate@npm:7.3.3":
|
||||
version: 7.3.3
|
||||
resolution: "html-validate@npm:7.3.3"
|
||||
"html-validate@npm:7.5.0":
|
||||
version: 7.5.0
|
||||
resolution: "html-validate@npm:7.5.0"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.10.0
|
||||
"@html-validate/stylish": ^3.0.0
|
||||
|
@ -4809,9 +4802,9 @@ browserlist@latest:
|
|||
prompts: ^2.0.0
|
||||
semver: ^7.0.0
|
||||
peerDependencies:
|
||||
jest: ^25.1 || ^26 || ^27.1 || ^28
|
||||
jest-diff: ^25.1 || ^26 || ^27.1 || ^28
|
||||
jest-snapshot: ^25.1 || ^26 || ^27.1 || ^28
|
||||
jest: ^25.1 || ^26 || ^27.1 || ^28.1.3 || ^29.0.3
|
||||
jest-diff: ^25.1 || ^26 || ^27.1 || ^28.1.3 || ^29.0.3
|
||||
jest-snapshot: ^25.1 || ^26 || ^27.1 || ^28.1.3 || ^29.0.3
|
||||
peerDependenciesMeta:
|
||||
jest:
|
||||
optional: true
|
||||
|
@ -4821,7 +4814,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
html-validate: bin/html-validate.js
|
||||
checksum: 15a092fd286858c381c781cdc3e5050af6e8e9200de313a8994862add72730be35c633543417212b6b53e6f3365407557f97e89ac1ebf7cab80d601c981fa437
|
||||
checksum: 04d73c5173e31358917d44d6bba3a256fdebc97f00aaca5d69966485b2a2743fa3de6a9042b54cbb402b4e6c7b4a626d622e9a83906702b89b684f2990e95a4d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -5416,6 +5409,13 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-sdsl@npm:^4.1.4":
|
||||
version: 4.1.5
|
||||
resolution: "js-sdsl@npm:4.1.5"
|
||||
checksum: 695f657ddc5be462b97cac4e8e60f37de28d628ee0e23016baecff0bb584a18dddb5caeac537a775030f180b5afd62133ac4481e7024c8d03a62d73e4da0713e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-stringify@npm:^1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "js-stringify@npm:1.0.2"
|
||||
|
@ -5738,10 +5738,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"luxon@npm:3.0.3":
|
||||
version: 3.0.3
|
||||
resolution: "luxon@npm:3.0.3"
|
||||
checksum: 67d143f102f520761c4202086579a5cf30b230ea299da27cacb31e9f9d372cadef90f14cbe7e2621b70825b267fe00128b8176ed8b7172b48f77a403a662d5aa
|
||||
"luxon@npm:3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "luxon@npm:3.0.4"
|
||||
checksum: d0908c3951da2a10ccf23040210ead23b0da5366a9d0954e7d5db3560189a7bd703d8af1e00084f197effc9cd7158d1bddf32886d98a70d59ce9bc3fe88bbce0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -6046,9 +6046,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"naive-ui@npm:2.33.2":
|
||||
version: 2.33.2
|
||||
resolution: "naive-ui@npm:2.33.2"
|
||||
"naive-ui@npm:2.33.3":
|
||||
version: 2.33.3
|
||||
resolution: "naive-ui@npm:2.33.3"
|
||||
dependencies:
|
||||
"@css-render/plugin-bem": ^0.15.10
|
||||
"@css-render/vue3-ssr": ^0.15.10
|
||||
|
@ -6069,7 +6069,7 @@ browserlist@latest:
|
|||
vueuc: ^0.4.47
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
checksum: 0e3c6465521925e9ca51bb9536ece8ff8cae5b293490a7be9121e9771a0f9e18b776b33cb7025d51a444230855285a37e3fe38d9eeac4f81c3e4937dc0fff541
|
||||
checksum: 772373981bef531a09fd57712dc74c9413c1061c1e754bf0ca6b287ad73673093f9c84b7fc835e5bfc287a816e31dd86595eda791aead763b63577430b934678
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -7099,31 +7099,31 @@ browserlist@latest:
|
|||
"@fullcalendar/timegrid": 5.11.3
|
||||
"@fullcalendar/vue3": 5.11.2
|
||||
"@parcel/transformer-sass": 2.7.0
|
||||
"@percy/cli": 1.10.2
|
||||
"@percy/cli": 1.10.4
|
||||
"@percy/cypress": 3.1.2
|
||||
"@popperjs/core": 2.11.6
|
||||
"@vitejs/plugin-vue": 2.3.4
|
||||
"@vue/test-utils": 2.0.2
|
||||
bootstrap: 5.2.1
|
||||
"@vue/test-utils": 2.1.0
|
||||
bootstrap: 5.2.2
|
||||
bootstrap-icons: 1.9.1
|
||||
browser-fs-access: 0.31.0
|
||||
browserlist: latest
|
||||
c8: 7.12.0
|
||||
caniuse-lite: 1.0.30001393
|
||||
cypress: 10.7.0
|
||||
caniuse-lite: 1.0.30001414
|
||||
cypress: 10.9.0
|
||||
cypress-real-events: 1.7.1
|
||||
d3: 7.6.1
|
||||
eslint: 8.23.0
|
||||
eslint: 8.24.0
|
||||
eslint-config-standard: 17.0.0
|
||||
eslint-plugin-cypress: 2.12.1
|
||||
eslint-plugin-import: 2.26.0
|
||||
eslint-plugin-n: 15.2.5
|
||||
eslint-plugin-n: 15.3.0
|
||||
eslint-plugin-node: 11.1.0
|
||||
eslint-plugin-promise: 6.0.1
|
||||
eslint-plugin-vue: 9.4.0
|
||||
eslint-plugin-vue: 9.5.1
|
||||
file-saver: 2.0.5
|
||||
highcharts: 10.2.1
|
||||
html-validate: 7.3.3
|
||||
html-validate: 7.5.0
|
||||
jquery: 3.6.1
|
||||
jquery-migrate: 3.4.0
|
||||
jquery-ui-dist: 1.13.2
|
||||
|
@ -7131,17 +7131,17 @@ browserlist@latest:
|
|||
list.js: 2.3.1
|
||||
lodash: 4.17.21
|
||||
lodash-es: 4.17.21
|
||||
luxon: 3.0.3
|
||||
luxon: 3.0.4
|
||||
moment: 2.29.4
|
||||
moment-timezone: 0.5.37
|
||||
ms: 2.1.3
|
||||
murmurhash-js: 1.0.0
|
||||
naive-ui: 2.33.2
|
||||
naive-ui: 2.33.3
|
||||
parcel: 2.7.0
|
||||
pinia: 2.0.22
|
||||
pinia-plugin-persist: 1.0.0
|
||||
pug: 3.0.2
|
||||
sass: 1.54.9
|
||||
sass: 1.55.0
|
||||
seedrandom: 3.0.5
|
||||
select2: 4.1.0-rc.0
|
||||
select2-bootstrap-5-theme: 1.3.0
|
||||
|
@ -7149,7 +7149,7 @@ browserlist@latest:
|
|||
slugify: 1.6.5
|
||||
sortablejs: 1.15.0
|
||||
vite: 2.9.15
|
||||
vue: 3.2.39
|
||||
vue: 3.2.40
|
||||
vue-router: 4.1.5
|
||||
zxcvbn: 4.4.2
|
||||
languageName: unknown
|
||||
|
@ -7201,16 +7201,16 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"sass@npm:1.54.9":
|
||||
version: 1.54.9
|
||||
resolution: "sass@npm:1.54.9"
|
||||
"sass@npm:1.55.0":
|
||||
version: 1.55.0
|
||||
resolution: "sass@npm:1.55.0"
|
||||
dependencies:
|
||||
chokidar: ">=3.0.0 <4.0.0"
|
||||
immutable: ^4.0.0
|
||||
source-map-js: ">=0.6.2 <2.0.0"
|
||||
bin:
|
||||
sass: sass.js
|
||||
checksum: 90182b566072b48e2263c5a87229ab85164e13b71b24847ba76a8e68eb952cb69a7dcef815f4ccc0189dd2d0c254311acff6972166603338d33bbc96f6d500c6
|
||||
checksum: 7d769ed08efce4e6134e0f3dc11c4f07e32c413ac8eb43c5855f2686890fdcbd80da34165c91fb4ba407f478ca108e171574b5a60cb9814a5ed09d80f6014f96
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -8074,16 +8074,16 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vue@npm:3.2.39":
|
||||
version: 3.2.39
|
||||
resolution: "vue@npm:3.2.39"
|
||||
"vue@npm:3.2.40":
|
||||
version: 3.2.40
|
||||
resolution: "vue@npm:3.2.40"
|
||||
dependencies:
|
||||
"@vue/compiler-dom": 3.2.39
|
||||
"@vue/compiler-sfc": 3.2.39
|
||||
"@vue/runtime-dom": 3.2.39
|
||||
"@vue/server-renderer": 3.2.39
|
||||
"@vue/shared": 3.2.39
|
||||
checksum: f096a3f0a5f72c65d26246ff7989729eda2b996dc30c63fd8cd7ccda07e9c318d478e3e24661ff01e49bcf5fed6f330142fcf29d6ad46c13423f36b3ae1a54cc
|
||||
"@vue/compiler-dom": 3.2.40
|
||||
"@vue/compiler-sfc": 3.2.40
|
||||
"@vue/runtime-dom": 3.2.40
|
||||
"@vue/server-renderer": 3.2.40
|
||||
"@vue/shared": 3.2.40
|
||||
checksum: fb5ca87c16e58f24c0088add152ca1ef70ac6d198ec3a60e7904201c31aadefb2c28e361934c42a704742835cdd9c02ab5765f0c29e8335eb13261d7b764b0ee
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
|
Loading…
Reference in a new issue