Commit Graph

58 Commits

Author SHA1 Message Date
Benoît Burnichon
3da671649f When retrieving data from memcache, invalid data is sometimes retrieved.
Because of highly concurrent accesses to cache layer, calling isset/get can sometimes fail.

To avoid this, a callback function can be used in memcached driver but it is maintained by doctrine/cache.
To prevent error, check whether returned value is of proper type.
2015-06-05 14:37:50 +02:00
Benoît Burnichon
414111f7f2 Refactor EditController 2015-05-12 10:40:31 +02:00
Benoît Burnichon
62b8e5a6e4 Refactoring of API V1 Controller 2015-04-27 20:35:36 +02:00
Benoît Burnichon
bdec67aac7 FieldsController refactor 2015-04-02 14:33:12 +02:00
Jean-Yves Gaulier
5a08ebb68e change field.aggregable from bool to int -> allows to set the number of aggregation values 2015-03-24 14:43:27 +01:00
Benoît Burnichon
118bb2f03c Some fixup for ES instance 2015-03-11 15:22:20 +01:00
Mathieu Darse
63eaaf1596 Merge remote-tracking branch 'upstream/master' into elastic-indexer
Conflicts:
	composer.lock
	www/scripts/apps/admin/main/app.js
2015-03-10 15:25:20 +01:00
Nicolas Le Goff
ed3ffb59a6 Merge remote-tracking branch 'upstream/master' into 20150306-elastic-indexer
Conflicts:
	bin/console
	bower.json
	composer.json
	composer.lock
	lib/Alchemy/Phrasea/Application.php
	lib/Alchemy/Phrasea/Border/Manager.php
	lib/Alchemy/Phrasea/Controller/Api/V1.php
	lib/Alchemy/Phrasea/Core/PhraseaEvents.php
	lib/Alchemy/Phrasea/SearchEngine/SearchEngineOptions.php
	lib/classes/caption/field.php
	lib/classes/record/Interface.php
	templates/web/prod/index.html.twig
	www/skins/prod/000000/prodcolor.css
2015-03-10 14:36:31 +01:00
Nicolas Le Goff
5a55732b46 Fix strict mode sql issue 2015-03-06 12:35:18 +01:00
Nicolas Le Goff
e01c73aa83 Fix typo 2015-02-24 15:27:56 +01:00
Nicolas Le Goff
949bf06cac Merge branch '3.8'
Conflicts:
	CHANGELOG.md
	bin/console
	bin/developer
	bin/setup
	bower.json
	composer.json
	composer.lock
	features/bootstrap/FeatureContext.php
	features/bootstrap/GuiContext.php
	lib/Alchemy/Phrasea/Authentication/Token/TokenValidator.php
	lib/Alchemy/Phrasea/Command/BuildMissingSubdefs.php
	lib/Alchemy/Phrasea/Command/CreateCollection.php
	lib/Alchemy/Phrasea/Command/Developer/JavascriptBuilder.php
	lib/Alchemy/Phrasea/Controller/Admin/Collection.php
	lib/Alchemy/Phrasea/Controller/Admin/Databoxes.php
	lib/Alchemy/Phrasea/Controller/Admin/TaskManager.php
	lib/Alchemy/Phrasea/Controller/Api/V1.php
	lib/Alchemy/Phrasea/Controller/Client/Baskets.php
	lib/Alchemy/Phrasea/Controller/Client/Root.php
	lib/Alchemy/Phrasea/Controller/Prod/Basket.php
	lib/Alchemy/Phrasea/Controller/Prod/Export.php
	lib/Alchemy/Phrasea/Controller/Prod/Property.php
	lib/Alchemy/Phrasea/Controller/Prod/Records.php
	lib/Alchemy/Phrasea/Controller/Prod/Tools.php
	lib/Alchemy/Phrasea/Controller/Prod/Upload.php
	lib/Alchemy/Phrasea/Controller/Root/Login.php
	lib/Alchemy/Phrasea/Controller/Thesaurus/Thesaurus.php
	lib/Alchemy/Phrasea/Core/Event/ApiLoadEndEvent.php
	lib/Alchemy/Phrasea/Core/Event/ApiLoadStartEvent.php
	lib/Alchemy/Phrasea/Core/Provider/TaskManagerServiceProvider.php
	lib/Alchemy/Phrasea/Core/Version.php
	lib/Alchemy/Phrasea/Exception/XMLParseErrorException.php
	lib/Alchemy/Phrasea/Helper/DatabaseHelper.php
	lib/Alchemy/Phrasea/Helper/User/Edit.php
	lib/Alchemy/Phrasea/SearchEngine/Phrasea/PhraseaEngine.php
	lib/Alchemy/Phrasea/SearchEngine/SearchEngineOptions.php
	lib/Doctrine/Entities/AuthFailure.php
	lib/Doctrine/Entities/Basket.php
	lib/Doctrine/Entities/BasketElement.php
	lib/Doctrine/Entities/LazaretAttribute.php
	lib/Doctrine/Entities/LazaretCheck.php
	lib/Doctrine/Entities/LazaretFile.php
	lib/Doctrine/Entities/LazaretSession.php
	lib/Doctrine/Entities/Session.php
	lib/Doctrine/Entities/SessionModule.php
	lib/Doctrine/Entities/StoryWZ.php
	lib/Doctrine/Entities/UsrList.php
	lib/Doctrine/Entities/UsrListEntry.php
	lib/Doctrine/Entities/UsrListOwner.php
	lib/Doctrine/Entities/ValidationData.php
	lib/Doctrine/Entities/ValidationParticipant.php
	lib/Doctrine/Entities/ValidationSession.php
	lib/Doctrine/Logger/MonologSQLLogger.php
	lib/Doctrine/Repositories/BasketRepository.php
	lib/Doctrine/Repositories/ValidationParticipantRepository.php
	lib/Doctrine/Types/Binary.php
	lib/Doctrine/Types/Blob.php
	lib/Doctrine/Types/Enum.php
	lib/Doctrine/Types/LongBlob.php
	lib/Doctrine/Types/VarBinary.php
	lib/classes/API/OAuth2/Account.php
	lib/classes/API/OAuth2/Application.php
	lib/classes/API/OAuth2/Application/OfficePlugin.php
	lib/classes/API/OAuth2/AuthCode.php
	lib/classes/API/OAuth2/RefreshToken.php
	lib/classes/API/OAuth2/Token.php
	lib/classes/API/V1/Abstract.php
	lib/classes/API/V1/Interface.php
	lib/classes/API/V1/adapter.php
	lib/classes/API/V1/exception/abstract.php
	lib/classes/API/V1/exception/badrequest.php
	lib/classes/API/V1/exception/forbidden.php
	lib/classes/API/V1/exception/internalservererror.php
	lib/classes/API/V1/exception/maintenance.php
	lib/classes/API/V1/exception/methodnotallowed.php
	lib/classes/API/V1/exception/notfound.php
	lib/classes/API/V1/exception/unauthorized.php
	lib/classes/API/V1/result.php
	lib/classes/Exception/Feed/EntryNotFound.php
	lib/classes/Exception/Feed/ItemNotFound.php
	lib/classes/Exception/Feed/PublisherNotFound.php
	lib/classes/Feed/Abstract.php
	lib/classes/Feed/Adapter.php
	lib/classes/Feed/Aggregate.php
	lib/classes/Feed/Collection.php
	lib/classes/Feed/CollectionInterface.php
	lib/classes/Feed/Entry/Adapter.php
	lib/classes/Feed/Entry/Collection.php
	lib/classes/Feed/Entry/CollectionInterface.php
	lib/classes/Feed/Entry/Interface.php
	lib/classes/Feed/Entry/Item.php
	lib/classes/Feed/Entry/ItemInterface.php
	lib/classes/Feed/Interface.php
	lib/classes/Feed/Link.php
	lib/classes/Feed/LinkInterface.php
	lib/classes/Feed/Publisher/Adapter.php
	lib/classes/Feed/Publisher/Interface.php
	lib/classes/Feed/Token.php
	lib/classes/Feed/TokenAggregate.php
	lib/classes/Feed/XML/Abstract.php
	lib/classes/Feed/XML/Atom.php
	lib/classes/Feed/XML/Cooliris.php
	lib/classes/Feed/XML/Interface.php
	lib/classes/Feed/XML/RSS.php
	lib/classes/Feed/XML/RSS/Image.php
	lib/classes/Feed/XML/RSS/ImageInterface.php
	lib/classes/User/Adapter.php
	lib/classes/User/Interface.php
	lib/classes/appbox/register.php
	lib/classes/connection.php
	lib/classes/connection/abstract.php
	lib/classes/connection/interface.php
	lib/classes/connection/pdo.php
	lib/classes/connection/pdoStatementDebugger.php
	lib/classes/deprecated/countries.php
	lib/classes/deprecated/inscript.api.php
	lib/classes/eventsmanager/event/test.php
	lib/classes/ftpclient.php
	lib/classes/http/request.php
	lib/classes/media/subdef.php
	lib/classes/module/console/schedulerStart.php
	lib/classes/module/console/schedulerState.php
	lib/classes/module/console/schedulerStop.php
	lib/classes/module/console/taskState.php
	lib/classes/module/console/tasklist.php
	lib/classes/module/console/taskrun.php
	lib/classes/patch/320alpha4b.php
	lib/classes/patch/3715alpha1a.php
	lib/classes/patch/379alpha1a.php
	lib/classes/patch/380alpha10a.php
	lib/classes/patch/380alpha11a.php
	lib/classes/patch/380alpha13a.php
	lib/classes/patch/380alpha14a.php
	lib/classes/patch/380alpha15a.php
	lib/classes/patch/380alpha16a.php
	lib/classes/patch/380alpha17a.php
	lib/classes/patch/380alpha18a.php
	lib/classes/patch/380alpha3a.php
	lib/classes/patch/380alpha4a.php
	lib/classes/patch/380alpha6a.php
	lib/classes/patch/380alpha8a.php
	lib/classes/patch/380alpha9a.php
	lib/classes/patch/381alpha1b.php
	lib/classes/patch/381alpha2a.php
	lib/classes/patch/381alpha3a.php
	lib/classes/patch/381alpha4a.php
	lib/classes/patch/383alpha1a.php
	lib/classes/patch/383alpha2a.php
	lib/classes/patch/383alpha3a.php
	lib/classes/patch/383alpha4a.php
	lib/classes/record/adapter.php
	lib/classes/record/preview.php
	lib/classes/recordutils.php
	lib/classes/recordutils/audio.php
	lib/classes/recordutils/document.php
	lib/classes/recordutils/map.php
	lib/classes/recordutils/video.php
	lib/classes/registry.php
	lib/classes/registryInterface.php
	lib/classes/set/order.php
	lib/classes/system/url.php
	lib/classes/task/Scheduler.php
	lib/classes/task/appboxAbstract.php
	lib/classes/task/databoxAbstract.php
	lib/classes/task/manager.php
	lib/classes/task/period/RecordMover.php
	lib/classes/task/period/apibridge.php
	lib/classes/task/period/apiwebhooks.php
	lib/classes/task/period/archive.php
	lib/classes/task/period/cindexer.php
	lib/classes/task/period/emptyColl.php
	lib/classes/task/period/ftp.php
	lib/classes/task/period/ftpPull.php
	lib/classes/task/period/subdef.php
	lib/classes/task/period/test.php
	lib/classes/task/period/writemeta.php
	lib/conf.d/PhraseaFixture/AbstractWZ.php
	lib/conf.d/PhraseaFixture/Basket/LoadFiveBaskets.php
	lib/conf.d/PhraseaFixture/Basket/LoadOneBasket.php
	lib/conf.d/PhraseaFixture/Basket/LoadOneBasketEnv.php
	lib/conf.d/PhraseaFixture/Lazaret/LoadOneFile.php
	lib/conf.d/PhraseaFixture/Story/LoadOneStory.php
	lib/conf.d/PhraseaFixture/UsrLists/ListAbstract.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrList.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrListEntry.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrListOwner.php
	lib/conf.d/PhraseaFixture/ValidationParticipant/LoadOneParticipant.php
	lib/conf.d/PhraseaFixture/ValidationParticipant/LoadParticipantWithSession.php
	lib/conf.d/PhraseaFixture/ValidationSession/LoadOneValidationSession.php
	templates/web/admin/collection/collection.html.twig
	templates/web/common/dialog_export.html.twig
	templates/web/common/menubar.html.twig
	templates/web/prod/actions/Tools/index.html.twig
	templates/web/prod/index.html.twig
	templates/web/prod/upload/upload-flash.html.twig
	templates/web/prod/upload/upload.html.twig
	templates/web/report/report_layout_child.html.twig
	templates/web/setup/step2.html.twig
	templates/web/thesaurus/new-synonym-dialog.html.twig
	templates/web/thesaurus/properties.html.twig
	templates/web/thesaurus/search.html.twig
	tests/Alchemy/Tests/Phrasea/Application/ApiAbstract.php
	tests/Alchemy/Tests/Phrasea/Cache/FactoryTest.php
	tests/Alchemy/Tests/Phrasea/Controller/Admin/AdminCollectionTest.php
	tests/Alchemy/Tests/Phrasea/Controller/Client/RootTest.php
2015-02-05 18:38:49 +01:00
Mathieu Darse
c6b509a32c Centralize record event dispatches inside record adapter (but not structure ones) 2015-02-03 11:19:23 +01:00
Mathieu Darse
e287ba1a42 Merge record and structure events inside new namespace 2015-01-27 18:59:27 +01:00
Nicolas Le Goff
a01bf29c5b Add elasticsearch reindex events 2015-01-26 16:04:23 +01:00
Nicolas Le Goff
d82adbf109 Bump year to 2015 2015-01-20 14:08:25 +01:00
Nicolas Le Goff
5e33fdafe4 Merge branch '3.8'
Conflicts:
	composer.json
	composer.lock
	lib/Alchemy/Phrasea/Controller/Prod/Edit.php
	lib/Alchemy/Phrasea/Controller/Report/Activity.php
	lib/classes/caption/field.php
	lib/classes/module/report/activity.php
	lib/classes/module/report/download.php
	lib/classes/task/period/apibridge.php
2014-12-16 13:07:25 +01:00
Nicolas Le Goff
edac914c8f Fix missing argument in rename_all_metadata function 2014-12-12 16:58:07 +01:00
Nicolas Le Goff
0e807b2b0f Add aggregable property to metadata fields 2014-09-08 14:53:23 +02:00
Romain Neutron
8cf73891c0 Add reconnectable connection 2014-03-03 01:00:15 +01:00
Romain Neutron
5d843ab370 Merge branch '3.8'
Conflicts:
	lib/Alchemy/Phrasea/Border/Manager.php
	lib/Alchemy/Phrasea/Controller/Prod/Tools.php
	lib/Alchemy/Phrasea/Core/Provider/BorderManagerServiceProvider.php
	lib/Alchemy/Phrasea/Core/Provider/PhraseanetServiceProvider.php
	lib/Alchemy/Phrasea/Helper/User/Manage.php
	lib/classes/User/Adapter.php
	lib/classes/connection.php
	lib/classes/connection/abstract.php
	lib/classes/connection/interface.php
	lib/classes/connection/pdo.php
	lib/classes/patch/370alpha7a.php
	lib/classes/patch/370alpha8a.php
	lib/classes/record/adapter.php
	lib/classes/task/period/RecordMover.php
	tests/Alchemy/Tests/Phrasea/Authentication/Phrasea/NativeAuthenticationTest.php
	tests/Alchemy/Tests/Phrasea/Core/Provider/BorderManagerServiceProviderTest.php
	tests/Alchemy/Tests/Phrasea/Core/Provider/PhraseanetServiceProviderTest.php
	tests/classes/PhraseanetPHPUnitAbstract.php
2014-03-03 00:05:11 +01:00
Romain Neutron
035576cefc Fix #1705 : MySQL connection might be lost after long operations 2014-03-02 02:19:13 +01:00
Nicolas Le Goff
2028871f34 Fix Cs 2014-02-25 16:33:43 +01:00
Romain Neutron
5a5da77662 Use Doctrine DBAL instead of custom connection 2014-02-22 23:55:12 +01:00
Romain Neutron
12f9575a8b Merge branch '3.8'
Conflicts:
	lib/Alchemy/Phrasea/Controller/Prod/Lazaret.php
	lib/classes/API/OAuth2/Adapter.php
	lib/classes/API/V1/adapter.php
	lib/classes/Feed/Adapter.php
	lib/classes/Feed/Collection.php
	lib/classes/Feed/Entry/Adapter.php
	lib/classes/Feed/Entry/Item.php
	lib/classes/Feed/Publisher/Adapter.php
	lib/classes/User/Adapter.php
	lib/classes/base.php
	lib/classes/connection.php
	lib/classes/databox/cgu.php
	lib/classes/eventsmanager/notify/autoregister.php
	lib/classes/eventsmanager/notify/bridgeuploadfail.php
	lib/classes/eventsmanager/notify/order.php
	lib/classes/eventsmanager/notify/orderdeliver.php
	lib/classes/eventsmanager/notify/ordernotdelivered.php
	lib/classes/eventsmanager/notify/push.php
	lib/classes/eventsmanager/notify/register.php
	lib/classes/eventsmanager/notify/validate.php
	lib/classes/eventsmanager/notify/validationdone.php
	lib/classes/eventsmanager/notify/validationreminder.php
	lib/classes/module/console/taskState.php
	lib/classes/module/console/taskrun.php
	lib/classes/record/adapter.php
	lib/classes/registry.php
	lib/classes/set/order.php
	lib/classes/task/abstract.php
	lib/classes/task/appboxAbstract.php
	lib/classes/task/databoxAbstract.php
	lib/classes/task/manager.php
	lib/classes/task/period/RecordMover.php
	lib/classes/task/period/apibridge.php
	lib/classes/task/period/archive.php
	lib/classes/task/period/ftp.php
	lib/classes/task/period/ftpPull.php
	templates/web/prod/upload/lazaret.html.twig
2014-02-20 16:05:23 +01:00
Romain Neutron
2af21c064c Avoid errors by explicitely namespacing root exception 2014-02-20 11:28:31 +01:00
Romain Neutron
97d96a6b32 Add elastic-search engine support 2014-01-27 20:12:13 +01:00
Romain Neutron
e233e5afa6 Merge branch '3.8'
Conflicts:
	lib/Alchemy/Phrasea/Command/Developer/JavascriptBuilder.php
	lib/Alchemy/Phrasea/Controller/Prod/Basket.php
	lib/Alchemy/Phrasea/Core/Provider/TaskManagerServiceProvider.php
	lib/classes/Exception/Feed/ItemNotFound.php
	lib/classes/Exception/Feed/PublisherNotFound.php
	lib/classes/Feed/Abstract.php
	lib/classes/Feed/Adapter.php
	lib/classes/Feed/Aggregate.php
	lib/classes/Feed/Collection.php
	lib/classes/Feed/CollectionInterface.php
	lib/classes/Feed/Entry/Adapter.php
	lib/classes/Feed/Entry/Collection.php
	lib/classes/Feed/Entry/Interface.php
	lib/classes/Feed/Entry/Item.php
	lib/classes/Feed/Entry/ItemInterface.php
	lib/classes/Feed/Interface.php
	lib/classes/Feed/Link.php
	lib/classes/Feed/LinkInterface.php
	lib/classes/Feed/Publisher/Adapter.php
	lib/classes/Feed/Publisher/Interface.php
	lib/classes/Feed/Token.php
	lib/classes/Feed/TokenAggregate.php
	lib/classes/Feed/XML/Abstract.php
	lib/classes/Feed/XML/Atom.php
	lib/classes/Feed/XML/Cooliris.php
	lib/classes/Feed/XML/Interface.php
	lib/classes/Feed/XML/RSS.php
	lib/classes/Feed/XML/RSS/ImageInterface.php
	lib/classes/http/request.php
	lib/classes/module/console/schedulerStart.php
	lib/classes/module/console/schedulerState.php
	lib/classes/module/console/schedulerStop.php
	lib/classes/module/console/taskState.php
	lib/classes/module/console/tasklist.php
	lib/classes/module/console/taskrun.php
	lib/classes/registry.php
	lib/classes/registryInterface.php
	lib/classes/set/order.php
	lib/classes/system/url.php
	lib/classes/task/Scheduler.php
	lib/classes/task/appboxAbstract.php
	lib/classes/task/databoxAbstract.php
	lib/classes/task/manager.php
	lib/classes/task/period/RecordMover.php
	lib/classes/task/period/apibridge.php
	lib/classes/task/period/archive.php
	lib/classes/task/period/cindexer.php
	lib/classes/task/period/emptyColl.php
	lib/classes/task/period/ftp.php
	lib/classes/task/period/ftpPull.php
	lib/classes/task/period/subdef.php
	lib/classes/task/period/test.php
	lib/classes/task/period/writemeta.php
	lib/conf.d/PhraseaFixture/AbstractWZ.php
	lib/conf.d/PhraseaFixture/Basket/LoadFiveBaskets.php
	lib/conf.d/PhraseaFixture/Basket/LoadOneBasket.php
	lib/conf.d/PhraseaFixture/Basket/LoadOneBasketEnv.php
	lib/conf.d/PhraseaFixture/Lazaret/LoadOneFile.php
	lib/conf.d/PhraseaFixture/Story/LoadOneStory.php
	lib/conf.d/PhraseaFixture/UsrLists/ListAbstract.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrList.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrListEntry.php
	lib/conf.d/PhraseaFixture/UsrLists/UsrListOwner.php
	lib/conf.d/PhraseaFixture/ValidationParticipant/LoadOneParticipant.php
	lib/conf.d/PhraseaFixture/ValidationParticipant/LoadParticipantWithSession.php
	lib/conf.d/PhraseaFixture/ValidationSession/LoadOneValidationSession.php
2014-01-06 15:38:14 +01:00
Romain Neutron
d519c13e56 Bump copyright year 2014-01-06 15:28:12 +01:00
Romain Neutron
53ba5f215c Reduce memory usage 2013-12-26 15:34:05 +01:00
Romain Neutron
051d9f4035 Remove license comments 2013-11-20 16:49:29 +01:00
Romain Neutron
56b373ee6e Use short array declaration 2013-11-18 13:57:33 +01:00
Romain Neutron
f27fa53d4c Merge branch '3.8'
Conflicts:
	.travis.yml
	templates/web/setup/wrapper.html.twig
	tests/Alchemy/Tests/Phrasea/Authentication/AuthenticatorTest.php
2013-11-05 15:20:35 +01:00
Nicolas Le Goff
409a43db0c Fix field edition for vocabulary 2013-10-31 17:56:47 +01:00
Romain Neutron
fafe2dca0f Fix latest merge 2013-10-25 13:47:35 +02:00
Romain Neutron
1dfbff5666 Merge branch '3.8'
Conflicts:
	CHANGELOG.md
	bin/developer
	lib/classes/module/console/systemUpgrade.php
	www/skins/report/jquery-ui.css
2013-10-03 15:29:22 +02:00
Romain Neutron
d4c2e5959e Fix #1491 : Fix cache serialization in case of controlled vocabulary 2013-10-03 15:24:15 +02:00
Romain Neutron
2651d16d20 Merge pull request #664 from nlegoff/fix_1343
[3.8] Fix #1343 Display default name if label is empty
2013-10-01 02:48:09 -07:00
Nicolas Le Goff
332579440a Display default name if label is empty 2013-09-30 11:43:01 +02:00
Romain Neutron
4db4008a52 Fix #1491 : Fix cache serialization in case of controlled vocabulary 2013-09-27 19:06:40 +02:00
Romain Neutron
dbd06e9091 Remove dead code 2013-09-04 12:14:50 +02:00
Nicolas Le Goff
68ebcfddb5 Fix #1267 List is not renumbered after delete & Fix #1264 Can not add field, if there is no field in database 2013-07-11 01:41:50 +02:00
Romain Neutron
5bacbaf694 Add bin/console check:config command 2013-06-17 18:24:58 +02:00
Romain Neutron
d4e9d6203c Revert change 2013-06-11 16:00:24 +02:00
Romain Neutron
32c2d6154a Remove phraseanet services, update configuration 2013-06-11 14:05:44 +02:00
Romain Neutron
9dcb6a6342 Fix CS 2013-05-31 19:34:38 +02:00
Romain Neutron
82af1ba69e Add localized labels to databox fields 2013-05-30 18:12:31 +02:00
Romain Neutron
38f38290c8 Fix CS 2013-05-29 21:21:02 +02:00
Nicolas Le Goff
b52e4ee8c0 Address PR comment's
Fix tests
2013-05-27 23:26:49 +02:00
Romain Neutron
8a28ff16bc Add DCES databox_field unique key 2013-05-27 23:26:48 +02:00
Nicolas Le Goff
0539db7598 Add global register feature
Tweak admin field app

Fix typo

Tweaks

Fix typo
2013-05-27 23:26:48 +02:00