EDIT: Issueshttps://dev.e-taxonomy.eu/redmine/https://dev.e-taxonomy.eu/redmine/redmine/favicon.ico?14691914852024-03-18T11:00:45ZEDIT Project Management
Redmine bug #10481 (New): Vaadin type of the genus: selection truncatedhttps://dev.e-taxonomy.eu/redmine/issues/104812024-03-18T11:00:45ZWolf-Henning Kusber
<p>In the production system the following entries are missing:<br>
original designation<br>
monotypy<br>
automatic (not relevant for genus, but for ranks higher than genus and we decided to show all options for the genus, correct?)</p>
<p>In the selection:<br>
lectotype<br>
subsequent designation<br>
subsequent monotypy<br>
present designation<br>
not applicable</p>
<p>All options are shown in the test Vaadin (see):<br>
Genus: Monotypicgenus Kusber<br>
"Publication" Kusber, W.-H.: Generitype monotypic. – Zeitschrift für Tümpelkunde 11: 22-33</p>
bug #10471 (New): Cloning typedesignation does not workhttps://dev.e-taxonomy.eu/redmine/issues/104712024-02-06T10:36:14ZKatja Luther
<p>mail MM:</p>
<p>I want to duplicate the type information for Limonium ×interjectum in Caryophyllales database. <br>
I added one isonyme using duplicate option but to add the second isotype I receive the below error. <br>
I tried multiple times and re-connected the software. But the error is occurring each time.</p>
<p>The type was designated before using the "add a type designation" option. <br>
I duplicated it using "create type duplicate" option, I added G as collection and isotype as type status. </p>
<p>For a user with admin permissions this problem does not appear!</p>
<pre>last remote service : https://api.cybertaxonomy.org:443/caryophyllales/remoting/name.service
last remote method : getDbSchemaVersion
last remote request client time : 2024-02-02T15:57:03.944
last remote request response header time : Fri, 02 Feb 2024 14:57:03 GMT
client error time : 2024-02-02T15:57:03.969
login : m.malekmohammadi
editor version : 5.42.0
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryophyllales
schema version : 5.40.1.0.20230829
os : Windows 10 10.0 amd64
java : 1.8.0_121
java.lang.NullPointerException
at eu.etaxonomy.cdm.api.service.NameServiceImpl.cloneTypeDesignation(NameServiceImpl.java:245)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy821.cloneTypeDesignation(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:78)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy1356.cloneTypeDesignation(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:212)
at eu.etaxonomy.cdm.api.remoting.DebuggingRemoteInvocationExecutor.invoke(DebuggingRemoteInvocationExecutor.java:52)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:80)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1395)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
at eu.etaxonomy.cdm.servlet.DateHeaderFilter.doFilter(DateHeaderFilter.java:56)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1607)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1577)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at eu.etaxonomy.cdm.server.logging.InstanceLogWrapper.handle(InstanceLogWrapper.java:48)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:500)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.lang.Thread.run(Thread.java:748)
at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:45)
at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:149)
at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:158)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy137.cloneTypeDesignation(Unknown Source)
at eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection$3.run(TypeDesignationSection.java:116)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)
at org.eclipse.jface.action.ActionContributionItem.lambda$5(ActionContributionItem.java:436)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4236)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3824)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at eu.etaxonomy.taxeditor.Application.start(Application.java:20)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
</pre> feature request #10464 (New): Spring boot and modern Spring compositionhttps://dev.e-taxonomy.eu/redmine/issues/104642024-01-28T19:20:49ZAndreas Müller
<p>Part of new architecture <a class="issue tracker-8 status-5 priority-11 priority-default closed" title="discussion: [Master] Upgrade architecture (Closed)" href="https://dev.e-taxonomy.eu/redmine/issues/10445">#10445</a></p>
<ul>
<li><a href="https://start.spring.io/">https://start.spring.io/</a></li>
<li><a href="https://spring.io/guides/gs/spring-boot/">https://spring.io/guides/gs/spring-boot/</a></li>
<li>embedded server
<ul>
<li><a href="https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/html/howto-embedded-web-servers.html">https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/html/howto-embedded-web-servers.html</a></li>
<li><a href="https://howtodoinjava.com/spring-boot/configure-jetty-server/">https://howtodoinjava.com/spring-boot/configure-jetty-server/</a></li>
</ul></li>
<li><a href="https://dzone.com/articles/why-springboot">https://dzone.com/articles/why-springboot</a></li>
<li>Graph QL: <a href="https://www.heise.de/hintergrund/Spring-for-GraphQL-in-der-Praxis-Eine-GraphQL-API-fuer-die-Tierklinik-7061176.html">https://www.heise.de/hintergrund/Spring-for-GraphQL-in-der-Praxis-Eine-GraphQL-API-fuer-die-Tierklinik-7061176.html</a></li>
</ul>
feature request #10462 (New): Allow adding ORCID for authors in Phycobankhttps://dev.e-taxonomy.eu/redmine/issues/104622024-01-24T10:56:23ZAndreas Müller
<p>... here: not for users but ordinary Person records.</p>
<p>Uses are handled at: <a class="issue tracker-6 status-1 priority-11 priority-default" title="task: Quick person entry via identifier (ORCID, IPNI, ...) for phycobank (New)" href="https://dev.e-taxonomy.eu/redmine/issues/9106">#9106</a></p>
feature request #10460 (New): Selfregistration widget follow uphttps://dev.e-taxonomy.eu/redmine/issues/104602024-01-24T09:52:18ZWolf-Henning Kusber
<p>Include as optional<br>
Field "Organisation"</p>
bug #10457 (New): Print version of portal site sometimes shows links as texthttps://dev.e-taxonomy.eu/redmine/issues/104572024-01-19T12:12:29ZAndreas Müller
<p>observed in Firefox:</p>
<p>WGB:</p>
<p>Außerdem zeigte er einen Browser-Ausdruck für ein einzelnes Taxon, gemacht mit Firefox. Das sah für Revisionszwecke eigentlich recht gut aus, Karte und alles. Nur am Anfang, beim Contenido werden die Links mit ausgegeben:</p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2396/clipboard-202401191310-jpqlb.png" alt="" /></p>
<p>Das ist nicht so schön – habt Ihr eine Idee, wie man das (im Browser?) abstellen kann? Aus Opera kann ich ordentliche PDFs mit allem aber ohne diese Links generieren. </p>
<p>AM:</p>
<p>Hast du dafür den Link<br><br>
<img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2397/clipboard-202401191310-wfhvr.png" alt="" /><br>
verwendet? Katja, kannst du sehen, ob das Funktionalität von Drupal ist, oder AK das entwickelt hat und ob man irgendwie an den Code kommt?<br>
Erstmal finde ich es schwierig, zu erkennen, woran das liegen könnte. Einzigen Unterschiede zu anderen Links im HTML ist, dass diese Links nicht in einem intergriert sind:</p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2398/clipboard-202401191311-5wj5t.png" alt="" /></p>
<p>anders als z.B. die Fußnoten Links </p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2399/clipboard-202401191311-l40lj.png" alt="" /></p>
<p>Aber ich habe mal versucht das manuell im HTML zu ändern, das hat nichts gebracht.</p>
<p>AM:</p>
<p>ich sehe gerade, dass es nicht nur im Content-Bereich diese Probleme bei der Print-Darstellung gibt sondern z.B. auch hier </p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2400/clipboard-202401191311-orrq1.png" alt="" /></p>
<p>Quelle: <a href="https://test.e-taxonomy.eu/dataportal/preview/cichorieae/?q=cdm_dataportal/taxon/c4651898-743b-4ab2-837a-3146d2d3332d">https://test.e-taxonomy.eu/dataportal/preview/cichorieae/?q=cdm_dataportal/taxon/c4651898-743b-4ab2-837a-3146d2d3332d</a> </p>
<p>Da stimmt also grundsätzlich was nicht bzw. müsste anders konfiguriert werden.</p>
feature request #10452 (New): Editorial workflow supporthttps://dev.e-taxonomy.eu/redmine/issues/104522024-01-15T13:26:05ZAndreas Müller
<p>WGB:</p>
<p>Hier geht es im Sinne der CDM-Modellierungsphilosophie darum, möglichst generelle Funktionalitäten zu schaffen, die im ganzen Spektrum der Platform genutzt werden können, also </p>
<ul>
<li>sowohl von in Einzel- als auch in Teamarbeit bearbeiteten Treatments</li>
<li>bei Teamarbeit mit oder ohne klare Abgrenzung der personellen Teilbaumverantwortlichkeit</li>
<li>inhaltlich von einfachen Checklisten hin zu Floren-Treatments bis zu quasi-monographischen Sachen (Doktorarbeiten)</li>
<li>nur-online oder mit Print- oder PDF-Veröffentlichung als Haupt- oder Beiprodukt</li>
<li>mit oder ohne noch zu veröffentlichenden nomenklatorischen „acts“</li>
</ul>
<p>Die Frage, wie man eigentlich die Rollen Autor, Editor, Compiler definiert, muss m.A.n. projektspezifisch entschieden werden. Aber eine Diskussion zur Eingrenzung und Kategorisierung der verschiedenen Möglichkeiten ist hier sinnvoll, so dass das auch bei Ausgaben allgemein und nicht nur projektspezifisch gehandhabt werden kann. Diese Fragestellung geht in die Behandlung der sec.-Referenzen über und weiter auch in die Nutzung und das Handling von Quellreferenzen allgemein. </p>
<p>Weiterhin braucht man Möglichkeiten, den Bearbeitungsstand bzw. die Qualität von bestimmten Informationen zu kennzeichnen. <br>
Als Voraussetzung für die Diskussion bräuchte man hierzu erstmal eine zusammenfassende Darstellung, welche Möglichkeiten es z.Zt. schon in der Platform gibt (auch die, die bisher nicht ausgegeben werden). Möglichkeiten sehe ich angefangen bei Faktenkategorien („last taxonomic scruteny“ mit Quelle wie in CoL; „Taxonomic status“ in eFloraMex a la Iresine Borsch & al.), aber vor allem auch in Markern, Annotations, Extensions (?) und spezifischen Strukturen wie z.B. das geforderte Häkchen im Navigator Baum oder den schon implementierten Kategorien für den Ausschluss von Namen und Taxa.</p>
task #10450 (New): Handle zip-files consistent in list exportshttps://dev.e-taxonomy.eu/redmine/issues/104502024-01-12T16:27:18ZAndreas Müller
<p>The handling of zip-files differs in the list exports (cdm-light, coldp, wfo-classification and dwc-a export).</p>
<p>For coldp (and maybe the coming wfo-classification) export it allows selecting a folder and defines a default file name for the zip-file while only at the second page of the assistant one can choose to create a zip-file or not. This should be at the same page. Also when selecting "Create zip-file" it should show the "Select folder for exported files" option while when unselecting "create zip-file" it should show the file selection dialogue which then possibly opens the a browser and allows to choose a filename using OS functionality for this.</p>
<p>We should keep the default for zip-creation as "don't" for cdmlight but "do" for the others as dwc-a and coldp by default are handled as zip-files.</p>
<p>For the ordinary dwc-a export we need to check if it is easy to implement to also allow creation of an unzipped version.</p>
discussion #10445 (Closed): [Master] Upgrade architecturehttps://dev.e-taxonomy.eu/redmine/issues/104452023-12-19T13:47:45ZAndreas Müller
<p>The EDIT platform architekture needs to be generally upgraded. This ticket is for reporting and linking ideas.</p>
<ul>
<li><p>Composable Web Architecture / Microservices / Hexagonale Architektur</p>
<ul>
<li><a href="https://www.bigcommerce.com/articles/ecommerce-website-development/composable-architecture/">https://www.bigcommerce.com/articles/ecommerce-website-development/composable-architecture/</a></li>
<li><a href="https://www.heise.de/hintergrund/Buchbesprechung-Get-Your-Hands-Dirty-on-Clean-Architecture-9289270.html">https://www.heise.de/hintergrund/Buchbesprechung-Get-Your-Hands-Dirty-on-Clean-Architecture-9289270.html</a></li>
<li><a href="https://www.happycoders.eu/de/software-craftsmanship/hexagonale-architektur/">https://www.happycoders.eu/de/software-craftsmanship/hexagonale-architektur/</a>
<ul>
<li><a href="https://www.happycoders.eu/de/software-craftsmanship/hexagonale-architektur-java/">https://www.happycoders.eu/de/software-craftsmanship/hexagonale-architektur-java/</a></li>
<li><a href="https://github.com/SvenWoltmann/hexagonal-architecture-java">https://github.com/SvenWoltmann/hexagonal-architecture-java</a></li>
</ul></li>
<li><a href="https://blog.getambassador.io/microservice-orchestration-best-practices-f32314dd6a12">https://blog.getambassador.io/microservice-orchestration-best-practices-f32314dd6a12</a></li>
<li><a href="https://medium.com/javarevisited/top-10-microservice-design-patterns-for-experienced-developers-f4f5f782810e">https://medium.com/javarevisited/top-10-microservice-design-patterns-for-experienced-developers-f4f5f782810e</a></li>
<li><a href="https://stackoverflow.com/questions/29117570/orchestrating-microservices">https://stackoverflow.com/questions/29117570/orchestrating-microservices</a></li>
</ul></li>
<li><p>techniques on job descriptions</p></li>
<li><p>reactive:</p>
<ul>
<li><a href="https://vertx.io/introduction-to-vertx-and-reactive/">https://vertx.io/introduction-to-vertx-and-reactive/</a></li>
</ul></li>
<li><p>Cloud native: <a href="https://www.enterpriseintegrationpatterns.com/patterns/messaging/PublishSubscribeChannel.html">https://www.enterpriseintegrationpatterns.com/patterns/messaging/PublishSubscribeChannel.html</a></p></li>
</ul>
<p>Code quality:</p>
<ul>
<li><a href="https://www.sonarsource.com/">https://www.sonarsource.com/</a></li>
<li><a href="https://www.jarchitect.com/">https://www.jarchitect.com/</a></li>
</ul>
<p>Architecture patterns:</p>
<ul>
<li>s. auch Lesezeichen in FF</li>
</ul>
task #10444 (New): Add integration test with dockerhttps://dev.e-taxonomy.eu/redmine/issues/104442023-12-19T13:39:31ZAndreas Müller
<p>"Als Werkzeug für Integrationstests mit Docker hat sich die Java-Bibliothek Testcontainers in den vergangenen Jahren einen festen Platz in der Developer-Community erobert. Nachdem das Projekt laut der Docker-Verantwortlichen im laufenden Jahr zu den wachstumsstärksten auf Docker Hub avanciert war, hat Docker die Übernahme von AtomicJar angekündigt – dem Unternehmen hinter Testcontainers."</p>
<p><a href="https://www.docker.com/blog/docker-whale-comes-atomicjar-maker-of-testcontainers/">https://www.docker.com/blog/docker-whale-comes-atomicjar-maker-of-testcontainers/</a></p>
bug #10426 (New): MediaSpecimen as typedesignation not shown correctly in dataportalhttps://dev.e-taxonomy.eu/redmine/issues/104262023-10-31T13:04:30ZKatja Luther
<p>mail NaK:</p>
<p>1) Die Media URI wird im Portal nicht angezeigt.</p>
<p>2) „Prepared by“ wird im Portal auch nicht angezeigt</p>
<p>3) Media publication</p>
<p>Also if derivation tree or the compressed table is used, the mediaspecimen not shown on specimen page</p>
<p>The type designation is of type TextualTypedesignation.</p>
bug #10425 (New): MediaSpecimen as Typespecimen should be opened in corresponding details dialoghttps://dev.e-taxonomy.eu/redmine/issues/104252023-10-31T12:58:32ZKatja Luther
<p>mail NaK:</p>
<p>4) Im Details View öffnet sich nicht der Dialog wie unten, sondern der „normale“ Specimen-Dialog, der ist aber leer .</p>
<p><img src="https://dev.e-taxonomy.eu/redmine/attachments/download/2379/mediaSpecimen.png" alt="" /></p>
<p>Es wäre sehr hilfreich, wenn die Eingabe von Media Specimens vereinfacht werden könnte und wie normale Specimens direkt aus dem Details View gemacht werden könnte. Gut wäre es, direkt auswählen zu können: „Specimen“ oder „Media“ und dann würde sich die jeweils richtige Eingabemaske öffnen.</p>
bug #10423 (New): Distribution Editor: Make it possible to remember name in sourcehttps://dev.e-taxonomy.eu/redmine/issues/104232023-10-25T11:44:16ZKatja Luther
<p>Mail ERS:</p>
<p>ich habe gerade den Fall, dass ich für ein Taxon einen name in source angeben muss, der von dem akzeptierten Namen abweicht. Da diese Pflanze in fast allen 19 Untereinheiten Georgiens auftaucht, benutze ich den Distribution Editor, der mir die Auswahl einer Quelle erlaubt. Es wäre nun sehr komfortabel, wenn ich bei der Auswahl der Quelle auch gleich einen name in source auswählen könnte. Denn bisher ist es so, dass ich bei allen 19 Untereinheiten in den Details View wechseln und dort den Name in Source 19mal auswählen muss. Ich weiß nicht, ob ihr das schon mal angedacht hattet? Oder habe ich eine andere Lösung übersehen?</p>
feature request #10421 (New): Make it impossible to store objects with obligatory fields not set ...https://dev.e-taxonomy.eu/redmine/issues/104212023-10-24T09:53:56ZAndreas Müller
<p>As an example we found StatisticalMeasumentValue without type set, but there are many others.</p>
<p>We need to</p>
<ul>
<li>set up a list of all such fields</li>
<li>define a strategy how to handle this</li>
</ul>
<p>Maybe we can use the validation framework for it, but then we need a generic way how to indicate to the user that there is an obligatory field missing. Only using not null/not empty constraint is not enough as then the exception is thrown after pushing the save button which is not convenient and intuitive. </p>
bug #10417 (New): Remember selected application language after TaxEditor updatehttps://dev.e-taxonomy.eu/redmine/issues/104172023-10-19T15:14:32ZAndreas Müller
<p>for details see <a class="issue tracker-4 status-5 priority-11 priority-default closed" title="bug: Default application language should be English (Closed)" href="https://dev.e-taxonomy.eu/redmine/issues/10409">#10409</a></p>