diff --git a/VERSIONS b/VERSIONS
index 32c41452d90ae61b1a6cc340b3d117fa26b3c3a2..1cf7b265f2aca2ee46162fdfd63c856776383676 100644
--- a/VERSIONS
+++ b/VERSIONS
@@ -1,3 +1,13 @@
+22/05/2015 - v7.1.33
+
+ - ticket #24826 : Ajout d'une hauteur minimale dans le contenu des boîtes pour qu'on puisse toujours accéder à la molette de configuration.
+
+ - ticket #25250 : Suppression des containtes SQL 'not null' sur les champs de la table notices_articles
+
+ - ticket #25054 : Correction du filtrage du calendrier lorsque la date n'était pas sélectionnée.
+
+
+
 19/05/2015 v7.1.32
 
  - dev#15606: Nanook: possibilité de définir le site de l'abonné comme site de retrait par défaut pour les réservations.
@@ -17,8 +27,6 @@
 
  - ticket #24816 : La position des boîtes est gardée après réattribution d'un identifiant.
 
- - ticket #23767: Corrige le dédoublonage des auteurs d'album.
-
 
 
 12/05/2015 - v7.1.31
diff --git a/application/modules/opac/controllers/CmsController.php b/application/modules/opac/controllers/CmsController.php
index fd1d2083da864d0687f7ce9f03b11dcdfcc60856..36bf4fa0ef453bc820fb4a51486d6c33f724d688 100644
--- a/application/modules/opac/controllers/CmsController.php
+++ b/application/modules/opac/controllers/CmsController.php
@@ -258,8 +258,9 @@ class CmsController extends Zend_Controller_Action {
 
 		$preferences = array_merge($module_calendrier->getDefaultValues(),
 															 $this->_modulesPreferences($id_module));
+
 		if (!preg_match('/[0-9]{4}-[0-9]{2}/', $date)) {
-			$date = date('Y-m-d');
+			$date = null;
 		}
 
 		// param pour l'affichage du calendar
@@ -267,6 +268,7 @@ class CmsController extends Zend_Controller_Action {
 		if ($month = $this->_getParam('month')) {
 			$param['DATE'] = date('Y') . '-' . sprintf("%02d", $month);
 		}
+
 		$param['URL']='';
 		$param['ID_BIB']=Class_Profil::getCurrentProfil()->getIdSite();
 		$param['AFFICH_MOIS']=1;
diff --git a/cosmogramme/php/_init.php b/cosmogramme/php/_init.php
index 8b2195b82de2de4349a76f8de22f79ee98a90606..c3219fcd2db7d1fba09115ac4047a23fde4f9f91 100644
--- a/cosmogramme/php/_init.php
+++ b/cosmogramme/php/_init.php
@@ -2,7 +2,7 @@
 // Constantes
 error_reporting(E_ERROR | E_PARSE);
 
-define("PATCH_LEVEL","252");
+define("PATCH_LEVEL","253");
 
 define("APPLI","cosmogramme");
 define("COSMOPATH", "/var/www/html/vhosts/opac2/www/htdocs");
diff --git a/cosmogramme/php/classes/classe_unimarc.php b/cosmogramme/php/classes/classe_unimarc.php
index 12b2751f1054dc7eb6d39a5fe594638884d54c67..f8ccc45faedc9a2f07df68de4c38d6705680c0b2 100644
--- a/cosmogramme/php/classes/classe_unimarc.php
+++ b/cosmogramme/php/classes/classe_unimarc.php
@@ -201,7 +201,7 @@ class notice_unimarc extends iso2709_record {
 	{
 		// type de doc
 		$notice["type_doc"] = 100;
-		$notice["infos_type_doc"] = array("code"=>100,libelle=>"article de périodique");
+		$notice["infos_type_doc"] = ["code"=>100, 'libelle'=>"article de périodique"];
 
 		// statut
 		$notice["statut"] = $this->getStatut();
diff --git a/cosmogramme/sql/patch/patch_236.php b/cosmogramme/sql/patch/patch_236.php
index 4d4aceb1c359bb091adca4d86496d9f8a896b53c..2755cc14d5ba1d7fff9e755ca5e4679b795ef5dd 100644
--- a/cosmogramme/sql/patch/patch_236.php
+++ b/cosmogramme/sql/patch/patch_236.php
@@ -1,8 +1,8 @@
 <?php
-
 $adapter = Zend_Db_Table_Abstract::getDefaultAdapter();
 $adapter->query("ALTER TABLE album MODIFY genre varchar(100) NULL default ''");
 $adapter->query("ALTER TABLE album MODIFY matiere varchar(100) NULL default ''");
 $adapter->query("ALTER TABLE album MODIFY nature_doc varchar(50) NULL default ''");
 $adapter->query("ALTER TABLE album MODIFY dewey varchar(100) NULL default ''");
 $adapter->query("ALTER TABLE album MODIFY tags text NULL default ''");
+?>
\ No newline at end of file
diff --git a/cosmogramme/sql/patch/patch_253.php b/cosmogramme/sql/patch/patch_253.php
new file mode 100644
index 0000000000000000000000000000000000000000..66bd425df7f5cc5442f41a53cbfe9ed2aee825bf
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_253.php
@@ -0,0 +1,10 @@
+<?php
+$adapter = Zend_Db_Table::getDefaultAdapter();
+$adapter->query('alter table notices_articles modify clef_chapeau varchar(100) NULL');
+$adapter->query('alter table notices_articles modify clef_numero varchar(20) NULL');
+$adapter->query('alter table notices_articles modify clef_article varchar(20) NULL');
+$adapter->query('alter table notices_articles modify clef_unimarc varchar(15) NULL');
+$adapter->query('alter table notices_articles modify unimarc text NULL');
+$adapter->query('alter table notices_articles modify date_maj varchar(20) NULL');
+$adapter->query('alter table notices_articles modify qualite tinyint(4) NULL');
+?>
\ No newline at end of file
diff --git a/cosmogramme/tests/php/classes/NoticeIntegrationTest.php b/cosmogramme/tests/php/classes/NoticeIntegrationTest.php
index 49cb6eddce714c4783c7c3f358c3d484b97ac50f..f96ce961e6965fed6424da2b657fcb959feb33fa 100644
--- a/cosmogramme/tests/php/classes/NoticeIntegrationTest.php
+++ b/cosmogramme/tests/php/classes/NoticeIntegrationTest.php
@@ -2258,4 +2258,41 @@ class NoticeIntegrationSerialTopSanteTest extends NoticeIntegrationTestCase {
 	public function noticeShouldHaveFiveArticles() {
 		$this->assertCount(5, $this->notice->getArticlesPeriodique());
 	}
-}
\ No newline at end of file
+}
+
+
+
+class NoticeIntegrationAloesSerialIndexpressBellesHistoireTest extends NoticeIntegrationTestCase {
+	public function getProfilDonnees() {
+		return Class_IntProfilDonnees::forALOES()
+			->setIdProfil(111)
+			->getRawAttributes();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+
+		$contents = file_get_contents(dirname(__FILE__)."/unimarc_petit_doucet.txt");
+
+		array_map([$this, 'loadNoticeFromString'],
+							preg_split('/'.chr(30).chr(29).'/', $contents));
+
+		$this->notice = Class_Notice::find(1);
+	}
+
+
+	/** @test */
+	public function mainTitleShouldBeBellesHistoires() {
+		$this->assertEquals('Belles histoires (Les)', $this->notice->getTitrePrincipal());
+	}
+
+
+	/** @test */
+	public function noArticleShouldHaveBeenSaved() {
+		$this->assertCount(0, Class_Notice_SerialArticles::findAll());
+	}
+}
+
+
+?>
\ No newline at end of file
diff --git a/cosmogramme/tests/php/classes/unimarc_petit_doucet.txt b/cosmogramme/tests/php/classes/unimarc_petit_doucet.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bc11399aa4c080cf51861de2891951d1f1529767
--- /dev/null
+++ b/cosmogramme/tests/php/classes/unimarc_petit_doucet.txt
@@ -0,0 +1 @@
+00369nas0 2200097   450 0010008000001000041000082000044000494610036000934620093001299950049002220690665  a20150429a||||    uu y0frey0103    ba| aBelles histoires (Les)h509i01/05/2015 |30627457tBelles histoires (Les)  30690669tLe petit Doucet et les 7 filles de l'ogrefHistoire Âecrite par Arnaud AlmÂeras  30690666aBDYbYf16431346045kA ALM bqJruu00638naa0 2200181   450 0010008000001000041000081010008000491020007000572000113000642150010001773300159001876760006003467000037003527020023003898010028004129020010004409030006004500690669  a20150429a||||    u  y0frey0103    ba| afre  aFR| aLe petit Doucet et les 7 filles de l'ogrefHistoire Âecrite par Arnaud AlmÂerasgillustrÂee par Sara Ogilvie  a42 p.  aIl Âetait une fois un petit garÐcon et trÁes gentil... Un jour, ses six frÁeres trÁes moqueurs et trÁes mÂechants dÂecident de le perdre dans la forÃet...  aA 1aAlmÂerasbArnaudf1967-....4070 1aOgilviebSara4440 1aFRbBDP YONNEc20150429  aAlbum  ab
\ No newline at end of file
diff --git a/library/Class/Album.php b/library/Class/Album.php
index c86cc58eec7f163785ab61932e95b2816a8c69d1..24871b321decb638b2c5bf0006d83ca45c5a4db0 100644
--- a/library/Class/Album.php
+++ b/library/Class/Album.php
@@ -1499,7 +1499,7 @@ class Class_Album extends Storm_Model_Abstract {
 
 		$found = false;
 		foreach($this->getAuthors() as $author) {
-			if ($name == $author->getName() && $function == $author->getResponsibility()) {
+			if ($name == $author['a'] && $function == $author['4']) {
 				$found = true;
 				break;
 			}
diff --git a/library/Class/Notice/SerialArticles.php b/library/Class/Notice/SerialArticles.php
index 0f6c821d08b89f6038ecb5c6e61c85f61f51e86b..ebf55ba7833772c02b7950d7285b31a8fd70ac04 100644
--- a/library/Class/Notice/SerialArticles.php
+++ b/library/Class/Notice/SerialArticles.php
@@ -23,6 +23,21 @@ class Class_Notice_SerialArticles extends Storm_Model_Abstract {
 	protected
 		$_table_name = 'notices_articles',
 		$_table_primary = 'id_article';
+
+
+	protected $_default_attribute_values = ['clef_chapeau' => '',
+																					'clef_numero' => '',
+																					'clef_article' => '',
+																					'unimarc' => ''];
+
+
+	public function validate() {
+		if (!$this->getClefChapeau())
+			$this->addError('Clé chapeau requise');
+
+		if (!$this->getClefNumero())
+			$this->addError('Clé numero requise');
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/library/startup.php b/library/startup.php
index 9ffcddde048df30e727f3dc0a828c27781f6130e..d87cc4a1e44a83f3c756978a54aadb631a4277de 100644
--- a/library/startup.php
+++ b/library/startup.php
@@ -64,7 +64,7 @@ function defineConstant($name, $value) {
 
 function setupConstants() {
 	defineConstant('BOKEH_MAJOR_VERSION','7.1');
-	defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.32');
+	defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.33');
 
 	defineConstant('ROOT_PATH',  realpath(dirname(__FILE__).'/..').'/');
 
diff --git a/public/opac/css/global.css b/public/opac/css/global.css
index 08b27b69aa70f29d9c056baabbe01c134d7090e8..41b5169ed3f3ab785f919c4b218cdda966915e99 100644
--- a/public/opac/css/global.css
+++ b/public/opac/css/global.css
@@ -2950,4 +2950,9 @@ a.loan-export {
 
 #fieldset-login_form legend {
    display: none;
+}
+
+
+.boite .contenu {
+    min-height: 20px;
 }
\ No newline at end of file
diff --git a/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php b/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php
index b49997b1ee78e045b625aa31be8421c5e6b6f65e..a3d3d9700c46aab38bb34688be87556c4187acda 100644
--- a/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php
+++ b/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php
@@ -18,6 +18,8 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
+
+
 abstract class CmsControllerCalendarActionTestCase extends AbstractControllerTestCase {
 	protected
 		$_nanook2;
@@ -348,33 +350,35 @@ class CmsControllerCalendarActionWithDayTest extends AbstractControllerTestCase
 	}
 }
 
+
+
 class CmsControllerCalendarActionHeaderTest extends AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
 		$this->cfg_accueil = [
-			'modules' => [
-				'1' => [
-					'division' => '1',
-					'type_module' => 'CALENDAR',
-					'preferences' => [
-						'titre' => 'Rendez-vous',
-						'rss_avis' => false,
-						'id_categorie' => '12-2',
-						'display_cat_select' => true,
-						'enabled_filters' => 'date;place;custom_field_2;zork',
-						'display_event_info' => 'none'
-					]
-				]
-			],
-			'options' => []
+													'modules' => [
+																				'1' => [
+																								'division' => '1',
+																								'type_module' => 'CALENDAR',
+																								'preferences' => [
+																																	'titre' => 'Rendez-vous',
+																																	'rss_avis' => false,
+																																	'id_categorie' => '12-2',
+																																	'display_cat_select' => true,
+																																	'enabled_filters' => 'date;place;custom_field_2;zork',
+																																	'display_event_info' => 'none'
+																								]
+																				]
+													],
+													'options' => []
 		];
 
 
 		$this->fixture('Class_Profil',
-				['id' => 3,
-				'browser' => 'opac',
-				'libelle' => 'Rendez-vous',
-				'cfg_accueil' => $this->cfg_accueil]);
+									 ['id' => 3,
+										'browser' => 'opac',
+										'libelle' => 'Rendez-vous',
+										'cfg_accueil' => $this->cfg_accueil]);
 
 		$this->dispatch('/index/index/id_profil/3');
 	}
@@ -387,4 +391,65 @@ class CmsControllerCalendarActionHeaderTest extends AbstractControllerTestCase {
 	}
 }
 
-?>
\ No newline at end of file
+
+
+
+class CmsControllerCalendarActionWithOutDateTest extends AbstractControllerTestCase {
+  public function setUp() {
+		parent::setUp();
+
+		$time_source = new TimeSourceForTest('2014-09-02 14:14:14');
+		ZendAfi_View_Helper_CalendarContent::setTimeSource($time_source);
+		ZendAfi_View_Helper_Calendar_Table::setTimeSource($time_source);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Article')
+			->whenCalled('getArticlesByPreferences')
+			->with(['display_order' => 'EventDebut',
+							'id_categorie' => '',
+							'events_only' => true,
+							'event_date' => '',
+							'id_bib' => 0,
+							'id_lieu' => '',
+							'custom_fields' => [],
+							'published' => true,
+							'event_start_after' => '2014-09',
+							'event_end_after' => '',
+							'limit' => 3])
+			->answers([])
+
+			->whenCalled('getArticlesByPreferences')
+			->with(['display_order' => 'EventDebut',
+							'id_categorie' => '',
+							'events_only' => true,
+							'event_date' => '2014-09',
+							'id_bib' => 0,
+							'id_lieu' => '',
+							'custom_fields' => [],
+							'published' => true,
+							'event_end_after' => '2014-09-02'])
+			->answers([$this->fixture('Class_Article',
+																['id' => 1,
+																 'titre' => 'Kitchen',
+																 'contenu' => 'Cook'])])
+
+			->whenCalled('getArticlesByPreferences')
+			->with(['display_order' => 'EventDebut',
+							'id_categorie' => '',
+							'events_only' => true,
+							'event_date' => '2014-09',
+							'id_bib' => 0,
+							'id_lieu' => '',
+							'custom_fields' => [],
+							'published' => true])
+			->answers([])
+			->beStrict();
+
+		$this->dispatch('/cms/calendar/render/ajax', true);
+	}
+
+
+	/** @test */
+	public function gatArticleByPreferencesShouldBeCallWithEventDAteAfter() {
+		$this->assertXPathContentContains('//div', 'Kitchen', $this->_response->getBody());
+	}
+}
diff --git a/tests/library/Class/AlbumAuthorTest.php b/tests/library/Class/AlbumAuthorTest.php
deleted file mode 100644
index 30bd4383322d103059dd4814c921afac3a5149c4..0000000000000000000000000000000000000000
--- a/tests/library/Class/AlbumAuthorTest.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
- *
- * BOKEH is free software; you can redistribute it and/or modify
- * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
- * the Free Software Foundation.
- *
- * There are special exceptions to the terms and conditions of the AGPL as it
- * is applied to this software (see README file).
- *
- * BOKEH is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
- * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
- */
-
-class AlbumAuthorAddingTest extends Storm_Test_ModelTestCase {
-
-	protected $_album;
-
-	public function setUp() {
-		parent::setUp();
-
-		$this->_album = $this->fixture('Class_Album', ['id' => 784,
-																									 'titre' => "Charlie's Country"]);
-
-		$this->_album->addAuthor('Djigirr Peter', '005');
-	}
-
-
-	/** @test */
-	public function albumShouldHaveOneAuthor() {
-		$this->assertCount(1, $this->_album->getAuthors());
-	}
-
-
-	/** @test */
-	public function authorOneNameShouldBeDjigirrPeter() {
-		$authorOne = $this->_album->getAuthors()[0];
-		$this->assertEquals('Djigirr Peter', $authorOne->getName());
-	}
-
-
-	/** @test */
-	public function authorOneFunctionShouldBe005() {
-		$authorOne = $this->_album->getAuthors()[0];
-		$this->assertEquals('005', $authorOne->getResponsibility());
-	}
-
-
-	/** @test */
-	public function addingSameAuthorWithSameFunctionShouldDedupIt() {
-		$this->_album->addAuthor('Djigirr Peter', '005');
-		$this->assertCount(1, $this->_album->getAuthors());
-	}
-}