diff --git a/base.cfg b/base.cfg index e88063c2..27dd478d 100644 --- a/base.cfg +++ b/base.cfg @@ -2,7 +2,7 @@ package-name = collective.contact.core package-extras = [test] extends = - https://raw.github.com/collective/buildout.plonetest/master/test-4.3.x.cfg + https://raw.github.com/collective/buildout.plonetest/master/test-6.0.x.cfg https://raw.github.com/collective/buildout.plonetest/master/qa.cfg sources.cfg checkouts.cfg @@ -13,6 +13,12 @@ show-picked-versions = true parts += omelette +auto-checkout = + collective.contact.widget + plone.formwidget.masterselect + plone.formwidget.autocomplete + plone.formwidget.contenttree + [test] eggs += ipdb @@ -30,3 +36,9 @@ flake8-extensions = [omelette] recipe = collective.recipe.omelette eggs = ${instance:eggs} + +[sources] +collective.contact.widget = git git@github.com:collective/collective.contact.widget branch=python3 +plone.formwidget.masterselect = git git@github.com:collective/plone.formwidget.masterselect.git branch=plone6_compatibility +plone.formwidget.autocomplete = git git@github.com:plone/plone.formwidget.autocomplete.git +plone.formwidget.contenttree = git git@github.com:plone/plone.formwidget.contenttree.git \ No newline at end of file diff --git a/checkouts.cfg b/checkouts.cfg index fa67d5a5..32e46ac8 100644 --- a/checkouts.cfg +++ b/checkouts.cfg @@ -1,6 +1,6 @@ [buildout] extends = - https://raw.github.com/plone/buildout.coredev/4.3/sources.cfg + https://raw.github.com/plone/buildout.coredev/6.0/sources.cfg always-checkout = force auto-checkout += collective.contact.widget diff --git a/requirements.txt b/requirements.txt index edde950d..5059ff7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pip==20.3.4 -setuptools==44.1.1 -zc.buildout==2.13.3 -wheel \ No newline at end of file +pip==24.2 +setuptools==74.0.0 +zc.buildout==3.1.0 +wheel==0.44.0 diff --git a/src/collective/contact/core/adapters.py b/src/collective/contact/core/adapters.py index 83c5c543..964ea6b6 100644 --- a/src/collective/contact/core/adapters.py +++ b/src/collective/contact/core/adapters.py @@ -160,17 +160,9 @@ def get_vcard(self): return vcard -def sort_closed_positions(position1, position2): - if position1.end_date == position2.end_date: - return 0 - elif not position1.end_date: - # position without end date is greater - return 1 - elif not position2.end_date: - return -1 - else: - return cmp(position1.end_date, position2.end_date) - +def closed_position_sort_key(position): + return position.end_date or float('inf') + @implementer(IPersonHeldPositions) class PersonHeldPositionsAdapter(object): @@ -205,7 +197,7 @@ def get_closed_positions(self): all_positions = self.person.get_held_positions() active_positions = self.get_current_positions() closed_positions = [p for p in all_positions if p not in active_positions] - closed_positions.sort(cmp=sort_closed_positions, reverse=True) + closed_positions.sort(key=closed_position_sort_key, reverse=True) return tuple(closed_positions) def get_sorted_positions(self): diff --git a/src/collective/contact/core/browser/addcontact.py b/src/collective/contact/core/browser/addcontact.py index caa272a2..5ed9be41 100644 --- a/src/collective/contact/core/browser/addcontact.py +++ b/src/collective/contact/core/browser/addcontact.py @@ -154,9 +154,9 @@ def add_contact_infos(self, widget): return {'actions': actions, 'close_on_click': close_on_click, 'formatItem': """function(row, idx, count, value) { -return ' ' + row[1] }""" - } + } # TODO @implementer(IContentProvider) @@ -210,7 +210,7 @@ def render(self): add_text = addneworga.data('pbo').original_text; } else { // update add new orga link to add sub orga - add_organization_url = portal_url + orga.path + '/++add++organization'; + add_organization_url = $("body").data("portal-url") + orga.path + '/++add++organization'; add_text = addneworga.data('pbo').original_text + ' dans ' + orga.title; } addneworga.data('pbo').src = add_organization_url; @@ -225,7 +225,7 @@ def render(self): .setOptions({extraParams: {path: orga.token}}).flushCache(); // update add new position url - var add_position_url = portal_url + orga.path + '/++add++position'; + var add_position_url = $("body").data("portal-url") + orga.path + '/++add++position'; o.find('#oform-widgets-position-autocomplete .addnew').each(function(){ jQuery(this).data('pbo').src = add_position_url; }) @@ -258,6 +258,7 @@ def render(self): }); """ % str(bool(getattr(self.__parent__.form, 'schema', None) == IAddHeldPosition)).lower() +# TODO class IAddHeldPosition(model.Schema): diff --git a/src/collective/contact/core/browser/basefields/templates/held_position.pt b/src/collective/contact/core/browser/basefields/templates/held_position.pt index 3722e4ad..515e616a 100644 --- a/src/collective/contact/core/browser/basefields/templates/held_position.pt +++ b/src/collective/contact/core/browser/basefields/templates/held_position.pt @@ -3,9 +3,15 @@ xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="collective.contact.core" - tal:define="ajax_load request/ajax_load | nothing;"> + tal:define="icons python:context.restrictedTraverse('@@iconresolver'); + ajax_load request/ajax_load | nothing;"> -

+

+ + +

@@ -17,7 +23,10 @@
- + + diff --git a/src/collective/contact/core/browser/basefields/templates/organization.pt b/src/collective/contact/core/browser/basefields/templates/organization.pt index f1e80c54..fd2bf2f7 100644 --- a/src/collective/contact/core/browser/basefields/templates/organization.pt +++ b/src/collective/contact/core/browser/basefields/templates/organization.pt @@ -4,16 +4,19 @@ xmlns:i18n="http://xml.zope.org/namespaces/i18n" lang="en" i18n:domain="collective.contact.core" tal:omit-tag="" - tal:define="ajax_load request/ajax_load | nothing;"> + tal:define="icons python:context.restrictedTraverse('@@iconresolver'); + ajax_load request/ajax_load | nothing;"> -

+

+ + +

-
- Generic KSS Description. Is rendered with class="documentDescription". -