Skip to main content

collective.mtrsetup

collective.mtrsetup provides a GenericSetup extension for importing and exporting mimetypes to / from the mimetypes registry.

How to use

  • Add collective.mtrsetup as dependency to your setup.py

  • Add a zcml-include to your configure.zcml or dependency.zcml

  • Add a dependency to profile-collective.mtrsetup:default to your metadata.xml in your generic setup profile

  • Create a mimetypes.xml as showed below in your generic setup profile

OpenOffice / Office 2007

There is a additional generic setup profile provided in this package (profile-collective.mtrsetup:default) which adds icons for OpenOffice (with backwards compatiblity to StarOffice) and adds the already used ms-office-icons to the new office 2007 mimetypes. The official Office 2007 icons are not added because of the license.

Examples

Here are some examples of how to use it.

Setup some testing stuff:

>>> from collective.mtrsetup.tests.base import purge_registry
>>> from collective.mtrsetup.tests.base import import_mimetypes_registry
>>> from collective.mtrsetup.tests.base import export_mimetypes_registry
>>> from zope.component.hooks import getSite
>>> portal = getSite()
>>> registry = portal.mimetypes_registry
>>> purge_registry(registry)
>>> len(registry.mimetypes())
0

We can add new mimetypes with a simple mimetype tag in a mimetypes.xml in our generic setup profile:

>>> filedata = """
... <?xml version="1.0"?>
... <object name="mimetypes_registry" meta_type="MimeTypes Registry">
...  <mimetype name="Any type" mimetypes="image/any"
...            extensions="any" globs="*.any" binary="True"
...            icon_path="àny.png" />
... </object>
... """.strip()
>>> import_mimetypes_registry(registry, filedata)
[(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]

Now we have just one mimetype correctly configured

>>> registry.list_mimetypes()
['image/any']
>>> image_any = registry.lookup('image/any')
>>> image_any
(<mimetype image/any>,)
>>> print image_any[0].icon_path
àny.png

Now we should be able to export the current configuration:

>>> print export_mimetypes_registry(registry)
<?xml version="1.0"...?>
<object name="mimetypes_registry" meta_type="MimeTypes Registry">
  <mimetype name="Any type" binary="True" extensions="any" globs="*.any"
      icon_path="àny.png" mimetypes="image/any"/>
</object>

We can also just modify a existing one:

>>> filedata = """
... <object name="mimetypes_registry" meta_type="MimeTypes Registry">
...  <mimetype name="Any type" mimetypes="image/any image/another" />
... </object>
... """.strip()
>>> import_mimetypes_registry(registry, filedata)
[(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]

The above notiation just updates the mimetype record, where image/any is the first mimetype:

>>> print export_mimetypes_registry(registry)
<?xml version="1.0"...?>
<object name="mimetypes_registry" meta_type="MimeTypes Registry">
  <mimetype name="Any type" binary="True" extensions="any" globs="*.any"
      icon_path="àny.png" mimetypes="image/any image/another"/>
</object>

Finally we can delete a mimetype by just adding the delete flag:

>>> filedata = """
... <object name="mimetypes_registry" meta_type="MimeTypes Registry">
...  <mimetype name="Any type" mimetypes="image/any" delete="True" />
... </object>
... """.strip()
>>> import_mimetypes_registry(registry, filedata)
[(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]
>>> print export_mimetypes_registry(registry)
<?xml version="1.0"...?>
<object name="mimetypes_registry" meta_type="MimeTypes Registry"/>

You have to add at least one mimetype, otherwise the import will fail:

>>> filedata = """
... <object name="mimetypes_registry" meta_type="MimeTypes Registry">
...  <mimetype mimetypes="" />
... </object>
... """.strip()
>>> import_mimetypes_registry(registry, filedata)
[(30, 'mimetypes', u'Require attributes: "mimetypes" for <mimetype mimetypes=""/>'), (20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]

Changelog

1.6.0 (2019-10-23)

  • Add Plone 5.1 support by replacing the old PloneTestCase with plone.app.testing [mathias.leimgruber]

  • Drop Plone 4.1 support [mathias.leimgruber]

1.5.4 (2017-07-31)

  • Remove z3c.autoinclude:includeDependencies. [jone]

1.5.3 (2017-04-05)

  • The mimetype values should be string not unicode, especially for the icon_path [ale-rt]

1.5.2 (2014-06-20)

  • Fixed mimetype icon URLs to be relative and not absolute from root [keul]

1.5.1 (2014-01-02)

  • Added xmind mimetype in example profile. [thomasdesvenain]

1.5 (2013-08-26)

  • Added mmap mimetype in example profile. [thomasdesvenain]

1.4.1 (2012-12-21)

  • Fixed release (fixed MANIFEST.in) [thomasdesvenain]

1.4 (2012-12-21)

  • Add csv mimetype in example profile. [thomasdesvenain]

1.3

  • Add rtf mimetype with icon in example profile. [thomasdesvenain]

1.2

1.1

  • In some Plone 3 setups “GenericSetup.mimetypes Require attributes” warning appears, fixed by adding all required attr to a mimetype record. [07.02.2011, mathias.leimgruber]

  • Added record for MS Project (Icon not included) [07.02.2011, mathias.leimgruber]

1.0

  • Updated MANIFEST.in: added docs directory to release [09.08.2010, jbaumann]

1.0a2

  • Updated README.txt (rest) [12.04.2010, jbaumann]

1.0a1

  • Added updates for OpenOffice mimetypes (added new icons) and for Office 2007 mimetypes (using the old office-like icons). [12.04.2010, jbaumann]

  • Assuerd that the GS import/export adapter works on both, plone3 and plone4. Plone3’s getToolByName returns the Tool, with plone4 it returns the Utility. The Tool and the Utility do not have the same interfaces and plone3 crashes when using the old-style utility interfaces for adapter registration - so we need to use a zcml:condition. [12.04.2010, jbaumann]

  • Implemented exporting, added tests [09.04.2010, jbaumann]

  • Improved testing system [09.04.2010, jbaumann]

  • Initial implementation [08.04.2010, jbaumann]

Release files for collective.mtrsetup 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.mtrsetup 1.6.0
File Size Uploaded
collective.mtrsetup-1.6.0.tar.gz 21.7 kB Details

Release files / collective.mtrsetup-1.6.0.tar.gz

Download URL collective.mtrsetup-1.6.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
716a633926467265b1103f98fde46f213c7df04d037e73444266edcf5f455db7
BLAKE2b-256 checksum
How to use checksums
f733c6a7a26d5475b93966082e013f2a00b2a01bd0c1965aa7b13a8deb8be96c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.15

Release history Release notifications | RSS feed

This release

1.6.0 This release

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5

1 release file

1.4.1

1 release file

1.2

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page