Skip to content
Browse files

first rdvz 2.0 code commit

  • Loading branch information...
1 parent c4d1626 commit 1ed9872c10f5e7bd1c2c0d2093cc2b105426228b romaindeveaud committed Dec 4, 2009
Showing with 11,578 additions and 0 deletions.
  1. +25 −0 ChangeLog
  2. +506 −0 LICENSE
  3. +8 −0 README
  4. +42 −0 TODO
  5. +40 −0 apps/frontend/config/app.yml
  6. +4 −0 apps/frontend/config/cache.yml
  7. +65 −0 apps/frontend/config/factories.yml
  8. +12 −0 apps/frontend/config/filters.yml
  9. +8 −0 apps/frontend/config/frontendConfiguration.class.php
  10. +19 −0 apps/frontend/config/routing.yml
  11. +9 −0 apps/frontend/config/security.yml
  12. +37 −0 apps/frontend/config/settings.yml
  13. +17 −0 apps/frontend/config/view.yml
  14. +34 −0 apps/frontend/lib/myUser.class.php
  15. +203 −0 apps/frontend/modules/meeting/actions/actions.class.php
  16. +2 −0 apps/frontend/modules/meeting/config/security.yml
  17. +32 −0 apps/frontend/modules/meeting/templates/_form.php
  18. +9 −0 apps/frontend/modules/meeting/templates/_notif_new_meeting.php
  19. +1 −0 apps/frontend/modules/meeting/templates/editSuccess.php
  20. +32 −0 apps/frontend/modules/meeting/templates/indexSuccess.php
  21. +2 −0 apps/frontend/modules/meeting/templates/newSuccess.php
  22. +74 −0 apps/frontend/modules/meeting/templates/showSuccess.php
  23. +34 −0 apps/frontend/templates/layout.php
  24. +13 −0 config/ProjectConfiguration.class.php
  25. +14 −0 config/databases.yml
  26. +43 −0 config/doctrine/schema.yml
  27. +3 −0 config/properties.ini
  28. +15 −0 config/rsync_exclude.txt
  29. +26 −0 data/fixtures/data.yml
  30. +17 −0 data/fixtures/fixtures.yml
  31. +6 −0 data/sql/schema.sql
  32. +16 −0 lib/filter/doctrine/BaseFormFilterDoctrine.class.php
  33. +74 −0 lib/filter/doctrine/base/BasemeetingFormFilter.class.php
  34. +50 −0 lib/filter/doctrine/base/Basemeeting_dateFormFilter.class.php
  35. +62 −0 lib/filter/doctrine/base/Basemeeting_pollFormFilter.class.php
  36. +56 −0 lib/filter/doctrine/base/BaseuserFormFilter.class.php
  37. +16 −0 lib/filter/doctrine/meetingFormFilter.class.php
  38. +16 −0 lib/filter/doctrine/meeting_dateFormFilter.class.php
  39. +16 −0 lib/filter/doctrine/meeting_pollFormFilter.class.php
  40. +16 −0 lib/filter/doctrine/userFormFilter.class.php
  41. +13 −0 lib/form/BaseForm.class.php
  42. +16 −0 lib/form/doctrine/BaseFormDoctrine.class.php
  43. +59 −0 lib/form/doctrine/base/BasemeetingForm.class.php
  44. +43 −0 lib/form/doctrine/base/Basemeeting_dateForm.class.php
  45. +51 −0 lib/form/doctrine/base/Basemeeting_pollForm.class.php
  46. +47 −0 lib/form/doctrine/base/BaseuserForm.class.php
  47. +93 −0 lib/form/doctrine/meetingForm.class.php
  48. +37 −0 lib/form/doctrine/meeting_dateForm.class.php
  49. +17 −0 lib/form/doctrine/meeting_pollForm.class.php
  50. +16 −0 lib/form/doctrine/userForm.class.php
  51. +77 −0 lib/model/doctrine/base/Basemeeting.class.php
  52. +50 −0 lib/model/doctrine/base/Basemeeting_date.class.php
  53. +57 −0 lib/model/doctrine/base/Basemeeting_poll.class.php
  54. +51 −0 lib/model/doctrine/base/Baseuser.class.php
  55. +42 −0 lib/model/doctrine/meeting.class.php
  56. +48 −0 lib/model/doctrine/meetingTable.class.php
  57. +16 −0 lib/model/doctrine/meeting_date.class.php
  58. +14 −0 lib/model/doctrine/meeting_dateTable.class.php
  59. +16 −0 lib/model/doctrine/meeting_poll.class.php
  60. +7 −0 lib/model/doctrine/meeting_pollTable.class.php
  61. +16 −0 lib/model/doctrine/user.class.php
  62. +25 −0 lib/model/doctrine/userTable.class.php
  63. BIN lib/vendor/symfony-1.3.0.tgz
  64. +174 −0 lib/vendor/symfony/CHANGELOG
  65. +82 −0 lib/vendor/symfony/COPYRIGHT
  66. +6 −0 lib/vendor/symfony/DEPRECATED_IN_1_3
  67. +19 −0 lib/vendor/symfony/LICENSE
  68. +20 −0 lib/vendor/symfony/README
  69. +6 −0 lib/vendor/symfony/UPGRADE_TO_1_3
  70. +6 −0 lib/vendor/symfony/WHATS_NEW
  71. +47 −0 lib/vendor/symfony/data/bin/changelog.php
  72. +106 −0 lib/vendor/symfony/data/bin/check_configuration.php
  73. +27 −0 lib/vendor/symfony/data/bin/create_sandbox.sh
  74. +105 −0 lib/vendor/symfony/data/bin/release.php
  75. +35 −0 lib/vendor/symfony/data/bin/sandbox_installer.php
  76. +100 −0 lib/vendor/symfony/data/bin/sandbox_skeleton/README
  77. +37 −0 lib/vendor/symfony/data/bin/symfony
  78. +39 −0 lib/vendor/symfony/data/bin/symfony.bat
  79. +203 −0 lib/vendor/symfony/data/web/sf/calendar/calendar-setup.js
  80. +252 −0 lib/vendor/symfony/data/web/sf/calendar/calendar-system.css
  81. +1,806 −0 lib/vendor/symfony/data/web/sf/calendar/calendar.js
  82. +39 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-af.js
  83. +128 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-bg.js
  84. +125 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-ca.js
  85. +72 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-cs.js
  86. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-da.js
  87. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-de.js
  88. +103 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-el.js
  89. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-en.js
  90. +129 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-es.js
  91. +129 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-eu.js
  92. +112 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-fi.js
  93. +129 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-fr.js
  94. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-he.js
  95. +64 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-hr.js
  96. +128 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-hu.js
  97. +128 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-it.js
  98. +135 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-ja.js
  99. +134 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-ko.js
  100. +128 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-lt.js
  101. +128 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-lv.js
  102. +76 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-nl.js
  103. +129 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-no.js
  104. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-pl.js
  105. +130 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-pt.js
  106. +112 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-pt_BR.js
  107. +72 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-ro.js
  108. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-ru.js
  109. +127 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-sk.js
  110. +109 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-sl.js
  111. +104 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-sq.js
  112. BIN lib/vendor/symfony/data/web/sf/calendar/lang/calendar-sr.js
  113. +132 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-sv.js
  114. +73 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-tr.js
  115. +123 −0 lib/vendor/symfony/data/web/sf/calendar/lang/calendar-zh.js
  116. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/active-bg.gif
  117. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/dark-bg.gif
  118. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/hover-bg.gif
  119. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/menuarrow.gif
  120. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/normal-bg.gif
  121. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/rowhover-bg.gif
  122. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/status-bg.gif
  123. +242 −0 lib/vendor/symfony/data/web/sf/calendar/skins/aqua/theme.css
  124. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/title-bg.gif
  125. BIN lib/vendor/symfony/data/web/sf/calendar/skins/aqua/today-bg.gif
  126. +353 −0 lib/vendor/symfony/data/web/sf/sf_admin/css/main.css
  127. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/add.png
  128. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/cancel.png
  129. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/date.png
  130. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/default_icon.png
  131. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/delete.png
  132. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/delete_icon.png
  133. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/edit.png
  134. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/edit_icon.png
  135. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/error.png
  136. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/filter.png
  137. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/first.png
  138. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/help.png
  139. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/last.png
  140. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/list.png
  141. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/next.png
  142. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/ok.png
  143. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/previous.png
  144. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/reset.png
  145. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/save.png
  146. BIN lib/vendor/symfony/data/web/sf/sf_admin/images/tick.png
  147. +87 −0 lib/vendor/symfony/data/web/sf/sf_admin/js/collapse.js
  148. +37 −0 lib/vendor/symfony/data/web/sf/sf_admin/js/double_list.js
  149. +4 −0 lib/vendor/symfony/data/web/sf/sf_default/css/ie.css
  150. +86 −0 lib/vendor/symfony/data/web/sf/sf_default/css/pngfix.htc
  151. +182 −0 lib/vendor/symfony/data/web/sf/sf_default/css/screen.css
  152. BIN lib/vendor/symfony/data/web/sf/sf_default/images/bg_body.jpg
  153. BIN lib/vendor/symfony/data/web/sf/sf_default/images/bg_sfTAlert.jpg
  154. BIN lib/vendor/symfony/data/web/sf/sf_default/images/bg_sfTLock.jpg
  155. BIN lib/vendor/symfony/data/web/sf/sf_default/images/bg_sfTMessage.jpg
  156. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/cancel48.png
  157. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/colour16.png
  158. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/db16.png
  159. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/disabled48.png
  160. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/edit16.png
  161. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/folder16.png
  162. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/linkOut16.png
  163. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/lock48.png
  164. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/ok48.png
  165. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/reload16.png
  166. BIN lib/vendor/symfony/data/web/sf/sf_default/images/icons/tools48.png
  167. BIN lib/vendor/symfony/data/web/sf/sf_default/images/sfTLogo.png
  168. BIN lib/vendor/symfony/data/web/sf/sf_default/images/trans.gif
  169. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/close.png
  170. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/config.png
  171. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/database.png
  172. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/email.png
  173. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/error.png
  174. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/info.png
  175. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/log.png
  176. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/memory.png
  177. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/reload.png
  178. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/sf.png
  179. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/time.png
  180. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/toggle.gif
  181. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/view.png
  182. BIN lib/vendor/symfony/data/web/sf/sf_web_debug/images/warning.png
  183. +574 −0 lib/vendor/symfony/lib/action/sfAction.class.php
  184. +119 −0 lib/vendor/symfony/lib/action/sfActionStack.class.php
  185. +94 −0 lib/vendor/symfony/lib/action/sfActionStackEntry.class.php
  186. +62 −0 lib/vendor/symfony/lib/action/sfActions.class.php
  187. +393 −0 lib/vendor/symfony/lib/action/sfComponent.class.php
  188. +30 −0 lib/vendor/symfony/lib/action/sfComponents.class.php
Sorry, we could not display the entire diff because too many files (3,272) changed.
View
25 ChangeLog
@@ -0,0 +1,25 @@
+RdvZ ChangeLog
+
+version 2.0
+ 2009-12-04 Romain Deveaud <romain.deveaud@univ-avignon.fr>
+
+ * beginning of the RdvZ 2.0 Symfony project, first development code commit.
+
+version 1.2.2
+ 2009-10-06 Romain Deveaud <romain.deveaud@univ-avignon.fr>
+
+ * includes/install/connection.php : fixes bugs in the install process where
+ relative pathes weren't pointing to the correct files.
+
+ * templates/uapv/calendar.tpl.php : fixes a PHP syntax which raised a Fatal
+ Error.
+
+ * ChangeLog : beginning of this ChangeLog.
+
+version 1.2.1
+ 2009-10-01 Arnaud Didry <arnaud.didry@univ-avignon.fr>
+
+ * includes/ldap_lecture.php : get_infos() function bugfix.
+
+ * includes/install/write_conf_cas.php : date_comments is now datecomments in
+ the database creation script.
View
506 LICENSE
@@ -0,0 +1,506 @@
+CeCILL FREE SOFTWARE LICENSE AGREEMENT
+
+
+ Notice
+
+This Agreement is a Free Software license agreement that is the result
+of discussions between its authors in order to ensure compliance with
+the two main principles guiding its drafting:
+
+ * firstly, compliance with the principles governing the distribution
+ of Free Software: access to source code, broad rights granted to
+ users,
+ * secondly, the election of a governing law, French law, with which
+ it is conformant, both as regards the law of torts and
+ intellectual property law, and the protection that it offers to
+ both authors and holders of the economic rights over software.
+
+The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
+license are:
+
+Commissariat à l'Energie Atomique - CEA, a public scientific, technical
+and industrial research establishment, having its principal place of
+business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
+
+Centre National de la Recherche Scientifique - CNRS, a public scientific
+and technological establishment, having its principal place of business
+at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
+
+Institut National de Recherche en Informatique et en Automatique -
+INRIA, a public scientific and technological establishment, having its
+principal place of business at Domaine de Voluceau, Rocquencourt, BP
+105, 78153 Le Chesnay cedex, France.
+
+
+ Preamble
+
+The purpose of this Free Software license agreement is to grant users
+the right to modify and redistribute the software governed by this
+license within the framework of an open source distribution model.
+
+The exercising of these rights is conditional upon certain obligations
+for users so as to preserve this status for all subsequent redistributions.
+
+In consideration of access to the source code and the rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty and the software's author, the holder of the
+economic rights, and the successive licensors only have limited liability.
+
+In this respect, the risks associated with loading, using, modifying
+and/or developing or reproducing the software by the user are brought to
+the user's attention, given its Free Software status, which may make it
+complicated to use, with the result that its use is reserved for
+developers and experienced professionals having in-depth computer
+knowledge. Users are therefore encouraged to load and test the
+suitability of the software as regards their requirements in conditions
+enabling the security of their systems and/or data to be ensured and,
+more generally, to use and operate it in the same conditions of
+security. This Agreement may be freely reproduced and published,
+provided it is not altered, and that no provisions are either added or
+removed herefrom.
+
+This Agreement may apply to any or all software for which the holder of
+the economic rights decides to submit the use thereof to its provisions.
+
+
+ Article 1 - DEFINITIONS
+
+For the purpose of this Agreement, when the following expressions
+commence with a capital letter, they shall have the following meaning:
+
+Agreement: means this license agreement, and its possible subsequent
+versions and annexes.
+
+Software: means the software in its Object Code and/or Source Code form
+and, where applicable, its documentation, "as is" when the Licensee
+accepts the Agreement.
+
+Initial Software: means the Software in its Source Code and possibly its
+Object Code form and, where applicable, its documentation, "as is" when
+it is first distributed under the terms and conditions of the Agreement.
+
+Modified Software: means the Software modified by at least one
+Contribution.
+
+Source Code: means all the Software's instructions and program lines to
+which access is required so as to modify the Software.
+
+Object Code: means the binary files originating from the compilation of
+the Source Code.
+
+Holder: means the holder(s) of the economic rights over the Initial
+Software.
+
+Licensee: means the Software user(s) having accepted the Agreement.
+
+Contributor: means a Licensee having made at least one Contribution.
+
+Licensor: means the Holder, or any other individual or legal entity, who
+distributes the Software under the Agreement.
+
+Contribution: means any or all modifications, corrections, translations,
+adaptations and/or new functions integrated into the Software by any or
+all Contributors, as well as any or all Internal Modules.
+
+Module: means a set of sources files including their documentation that
+enables supplementary functions or services in addition to those offered
+by the Software.
+
+External Module: means any or all Modules, not derived from the
+Software, so that this Module and the Software run in separate address
+spaces, with one calling the other when they are run.
+
+Internal Module: means any or all Module, connected to the Software so
+that they both execute in the same address space.
+
+GNU GPL: means the GNU General Public License version 2 or any
+subsequent version, as published by the Free Software Foundation Inc.
+
+Parties: mean both the Licensee and the Licensor.
+
+These expressions may be used both in singular and plural form.
+
+
+ Article 2 - PURPOSE
+
+The purpose of the Agreement is the grant by the Licensor to the
+Licensee of a non-exclusive, transferable and worldwide license for the
+Software as set forth in Article 5 hereinafter for the whole term of the
+protection granted by the rights over said Software.
+
+
+ Article 3 - ACCEPTANCE
+
+3.1 The Licensee shall be deemed as having accepted the terms and
+conditions of this Agreement upon the occurrence of the first of the
+following events:
+
+ * (i) loading the Software by any or all means, notably, by
+ downloading from a remote server, or by loading from a physical
+ medium;
+ * (ii) the first time the Licensee exercises any of the rights
+ granted hereunder.
+
+3.2 One copy of the Agreement, containing a notice relating to the
+characteristics of the Software, to the limited warranty, and to the
+fact that its use is restricted to experienced users has been provided
+to the Licensee prior to its acceptance as set forth in Article 3.1
+hereinabove, and the Licensee hereby acknowledges that it has read and
+understood it.
+
+
+ Article 4 - EFFECTIVE DATE AND TERM
+
+
+ 4.1 EFFECTIVE DATE
+
+The Agreement shall become effective on the date when it is accepted by
+the Licensee as set forth in Article 3.1.
+
+
+ 4.2 TERM
+
+The Agreement shall remain in force for the entire legal term of
+protection of the economic rights over the Software.
+
+
+ Article 5 - SCOPE OF RIGHTS GRANTED
+
+The Licensor hereby grants to the Licensee, who accepts, the following
+rights over the Software for any or all use, and for the term of the
+Agreement, on the basis of the terms and conditions set forth hereinafter.
+
+Besides, if the Licensor owns or comes to own one or more patents
+protecting all or part of the functions of the Software or of its
+components, the Licensor undertakes not to enforce the rights granted by
+these patents against successive Licensees using, exploiting or
+modifying the Software. If these patents are transferred, the Licensor
+undertakes to have the transferees subscribe to the obligations set
+forth in this paragraph.
+
+
+ 5.1 RIGHT OF USE
+
+The Licensee is authorized to use the Software, without any limitation
+as to its fields of application, with it being hereinafter specified
+that this comprises:
+
+ 1. permanent or temporary reproduction of all or part of the Software
+ by any or all means and in any or all form.
+
+ 2. loading, displaying, running, or storing the Software on any or
+ all medium.
+
+ 3. entitlement to observe, study or test its operation so as to
+ determine the ideas and principles behind any or all constituent
+ elements of said Software. This shall apply when the Licensee
+ carries out any or all loading, displaying, running, transmission
+ or storage operation as regards the Software, that it is entitled
+ to carry out hereunder.
+
+
+ 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
+
+The right to make Contributions includes the right to translate, adapt,
+arrange, or make any or all modifications to the Software, and the right
+to reproduce the resulting software.
+
+The Licensee is authorized to make any or all Contributions to the
+Software provided that it includes an explicit notice that it is the
+author of said Contribution and indicates the date of the creation thereof.
+
+
+ 5.3 RIGHT OF DISTRIBUTION
+
+In particular, the right of distribution includes the right to publish,
+transmit and communicate the Software to the general public on any or
+all medium, and by any or all means, and the right to market, either in
+consideration of a fee, or free of charge, one or more copies of the
+Software by any means.
+
+The Licensee is further authorized to distribute copies of the modified
+or unmodified Software to third parties according to the terms and
+conditions set forth hereinafter.
+
+
+ 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
+
+The Licensee is authorized to distribute true copies of the Software in
+Source Code or Object Code form, provided that said distribution
+complies with all the provisions of the Agreement and is accompanied by:
+
+ 1. a copy of the Agreement,
+
+ 2. a notice relating to the limitation of both the Licensor's
+ warranty and liability as set forth in Articles 8 and 9,
+
+and that, in the event that only the Object Code of the Software is
+redistributed, the Licensee allows future Licensees unhindered access to
+the full Source Code of the Software by indicating how to access it, it
+being understood that the additional cost of acquiring the Source Code
+shall not exceed the cost of transferring the data.
+
+
+ 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
+
+When the Licensee makes a Contribution to the Software, the terms and
+conditions for the distribution of the resulting Modified Software
+become subject to all the provisions of this Agreement.
+
+The Licensee is authorized to distribute the Modified Software, in
+source code or object code form, provided that said distribution
+complies with all the provisions of the Agreement and is accompanied by:
+
+ 1. a copy of the Agreement,
+
+ 2. a notice relating to the limitation of both the Licensor's
+ warranty and liability as set forth in Articles 8 and 9,
+
+and that, in the event that only the object code of the Modified
+Software is redistributed, the Licensee allows future Licensees
+unhindered access to the full source code of the Modified Software by
+indicating how to access it, it being understood that the additional
+cost of acquiring the source code shall not exceed the cost of
+transferring the data.
+
+
+ 5.3.3 DISTRIBUTION OF EXTERNAL MODULES
+
+When the Licensee has developed an External Module, the terms and
+conditions of this Agreement do not apply to said External Module, that
+may be distributed under a separate license agreement.
+
+
+ 5.3.4 COMPATIBILITY WITH THE GNU GPL
+
+The Licensee can include a code that is subject to the provisions of one
+of the versions of the GNU GPL in the Modified or unmodified Software,
+and distribute that entire code under the terms of the same version of
+the GNU GPL.
+
+The Licensee can include the Modified or unmodified Software in a code
+that is subject to the provisions of one of the versions of the GNU GPL,
+and distribute that entire code under the terms of the same version of
+the GNU GPL.
+
+
+ Article 6 - INTELLECTUAL PROPERTY
+
+
+ 6.1 OVER THE INITIAL SOFTWARE
+
+The Holder owns the economic rights over the Initial Software. Any or
+all use of the Initial Software is subject to compliance with the terms
+and conditions under which the Holder has elected to distribute its work
+and no one shall be entitled to modify the terms and conditions for the
+distribution of said Initial Software.
+
+The Holder undertakes that the Initial Software will remain ruled at
+least by this Agreement, for the duration set forth in Article 4.2.
+
+
+ 6.2 OVER THE CONTRIBUTIONS
+
+The Licensee who develops a Contribution is the owner of the
+intellectual property rights over this Contribution as defined by
+applicable law.
+
+
+ 6.3 OVER THE EXTERNAL MODULES
+
+The Licensee who develops an External Module is the owner of the
+intellectual property rights over this External Module as defined by
+applicable law and is free to choose the type of agreement that shall
+govern its distribution.
+
+
+ 6.4 JOINT PROVISIONS
+
+The Licensee expressly undertakes:
+
+ 1. not to remove, or modify, in any manner, the intellectual property
+ notices attached to the Software;
+
+ 2. to reproduce said notices, in an identical manner, in the copies
+ of the Software modified or not.
+
+The Licensee undertakes not to directly or indirectly infringe the
+intellectual property rights of the Holder and/or Contributors on the
+Software and to take, where applicable, vis-à-vis its staff, any and all
+measures required to ensure respect of said intellectual property rights
+of the Holder and/or Contributors.
+
+
+ Article 7 - RELATED SERVICES
+
+7.1 Under no circumstances shall the Agreement oblige the Licensor to
+provide technical assistance or maintenance services for the Software.
+
+However, the Licensor is entitled to offer this type of services. The
+terms and conditions of such technical assistance, and/or such
+maintenance, shall be set forth in a separate instrument. Only the
+Licensor offering said maintenance and/or technical assistance services
+shall incur liability therefor.
+
+7.2 Similarly, any Licensor is entitled to offer to its licensees, under
+its sole responsibility, a warranty, that shall only be binding upon
+itself, for the redistribution of the Software and/or the Modified
+Software, under terms and conditions that it is free to decide. Said
+warranty, and the financial terms and conditions of its application,
+shall be subject of a separate instrument executed between the Licensor
+and the Licensee.
+
+
+ Article 8 - LIABILITY
+
+8.1 Subject to the provisions of Article 8.2, the Licensee shall be
+entitled to claim compensation for any direct loss it may have suffered
+from the Software as a result of a fault on the part of the relevant
+Licensor, subject to providing evidence thereof.
+
+8.2 The Licensor's liability is limited to the commitments made under
+this Agreement and shall not be incurred as a result of in particular:
+(i) loss due the Licensee's total or partial failure to fulfill its
+obligations, (ii) direct or consequential loss that is suffered by the
+Licensee due to the use or performance of the Software, and (iii) more
+generally, any consequential loss. In particular the Parties expressly
+agree that any or all pecuniary or business loss (i.e. loss of data,
+loss of profits, operating loss, loss of customers or orders,
+opportunity cost, any disturbance to business activities) or any or all
+legal proceedings instituted against the Licensee by a third party,
+shall constitute consequential loss and shall not provide entitlement to
+any or all compensation from the Licensor.
+
+
+ Article 9 - WARRANTY
+
+9.1 The Licensee acknowledges that the scientific and technical
+state-of-the-art when the Software was distributed did not enable all
+possible uses to be tested and verified, nor for the presence of
+possible defects to be detected. In this respect, the Licensee's
+attention has been drawn to the risks associated with loading, using,
+modifying and/or developing and reproducing the Software which are
+reserved for experienced users.
+
+The Licensee shall be responsible for verifying, by any or all means,
+the suitability of the product for its requirements, its good working
+order, and for ensuring that it shall not cause damage to either persons
+or properties.
+
+9.2 The Licensor hereby represents, in good faith, that it is entitled
+to grant all the rights over the Software (including in particular the
+rights set forth in Article 5).
+
+9.3 The Licensee acknowledges that the Software is supplied "as is" by
+the Licensor without any other express or tacit warranty, other than
+that provided for in Article 9.2 and, in particular, without any warranty
+as to its commercial value, its secured, safe, innovative or relevant
+nature.
+
+Specifically, the Licensor does not warrant that the Software is free
+from any error, that it will operate without interruption, that it will
+be compatible with the Licensee's own equipment and software
+configuration, nor that it will meet the Licensee's requirements.
+
+9.4 The Licensor does not either expressly or tacitly warrant that the
+Software does not infringe any third party intellectual property right
+relating to a patent, software or any other property right. Therefore,
+the Licensor disclaims any and all liability towards the Licensee
+arising out of any or all proceedings for infringement that may be
+instituted in respect of the use, modification and redistribution of the
+Software. Nevertheless, should such proceedings be instituted against
+the Licensee, the Licensor shall provide it with technical and legal
+assistance for its defense. Such technical and legal assistance shall be
+decided on a case-by-case basis between the relevant Licensor and the
+Licensee pursuant to a memorandum of understanding. The Licensor
+disclaims any and all liability as regards the Licensee's use of the
+name of the Software. No warranty is given as regards the existence of
+prior rights over the name of the Software or as regards the existence
+of a trademark.
+
+
+ Article 10 - TERMINATION
+
+10.1 In the event of a breach by the Licensee of its obligations
+hereunder, the Licensor may automatically terminate this Agreement
+thirty (30) days after notice has been sent to the Licensee and has
+remained ineffective.
+
+10.2 A Licensee whose Agreement is terminated shall no longer be
+authorized to use, modify or distribute the Software. However, any
+licenses that it may have granted prior to termination of the Agreement
+shall remain valid subject to their having been granted in compliance
+with the terms and conditions hereof.
+
+
+ Article 11 - MISCELLANEOUS
+
+
+ 11.1 EXCUSABLE EVENTS
+
+Neither Party shall be liable for any or all delay, or failure to
+perform the Agreement, that may be attributable to an event of force
+majeure, an act of God or an outside cause, such as defective
+functioning or interruptions of the electricity or telecommunications
+networks, network paralysis following a virus attack, intervention by
+government authorities, natural disasters, water damage, earthquakes,
+fire, explosions, strikes and labor unrest, war, etc.
+
+11.2 Any failure by either Party, on one or more occasions, to invoke
+one or more of the provisions hereof, shall under no circumstances be
+interpreted as being a waiver by the interested Party of its right to
+invoke said provision(s) subsequently.
+
+11.3 The Agreement cancels and replaces any or all previous agreements,
+whether written or oral, between the Parties and having the same
+purpose, and constitutes the entirety of the agreement between said
+Parties concerning said purpose. No supplement or modification to the
+terms and conditions hereof shall be effective as between the Parties
+unless it is made in writing and signed by their duly authorized
+representatives.
+
+11.4 In the event that one or more of the provisions hereof were to
+conflict with a current or future applicable act or legislative text,
+said act or legislative text shall prevail, and the Parties shall make
+the necessary amendments so as to comply with said act or legislative
+text. All other provisions shall remain effective. Similarly, invalidity
+of a provision of the Agreement, for any reason whatsoever, shall not
+cause the Agreement as a whole to be invalid.
+
+
+ 11.5 LANGUAGE
+
+The Agreement is drafted in both French and English and both versions
+are deemed authentic.
+
+
+ Article 12 - NEW VERSIONS OF THE AGREEMENT
+
+12.1 Any person is authorized to duplicate and distribute copies of this
+Agreement.
+
+12.2 So as to ensure coherence, the wording of this Agreement is
+protected and may only be modified by the authors of the License, who
+reserve the right to periodically publish updates or new versions of the
+Agreement, each with a separate number. These subsequent versions may
+address new issues encountered by Free Software.
+
+12.3 Any Software distributed under a given version of the Agreement may
+only be subsequently distributed under the same version of the Agreement
+or a subsequent version, subject to the provisions of Article 5.3.4.
+
+
+ Article 13 - GOVERNING LAW AND JURISDICTION
+
+13.1 The Agreement is governed by French law. The Parties agree to
+endeavor to seek an amicable solution to any disagreements or disputes
+that may arise during the performance of the Agreement.
+
+13.2 Failing an amicable solution within two (2) months as from their
+occurrence, and unless emergency proceedings are necessary, the
+disagreements or disputes shall be referred to the Paris Courts having
+jurisdiction, by the more diligent Party.
+
+
+Version 2.0 dated 2006-09-05.
+
View
8 README
@@ -0,0 +1,8 @@
+ -=================-
+ RdvZ TODO list.
+ version 2.0 pre-alpha 2009/10/06
+ -=================-
+
+** The current version is an alpha development prototype, there's is
+currently no user or developper documentation nor built-in installer.
+Development is standed by but will resume soon. **
View
42 TODO
@@ -0,0 +1,42 @@
+ -=================-
+ RdvZ TODO list.
+ version 2.0 pre-alpha 2009/10/06
+ -=================-
+
+** The current version is an alpha development prototype, there's is
+currently no user or developper documentation nor built-in installer.
+Development is standed by but will resume soon. **
+
+
+None of the following items are in any order of importance or difficulty.
+Where possible, related items have been grouped together.
+
+Before implementing any of these, we suggest that you ask about it (them)
+on the mailing list <gpl@univ-avignon.fr>.
+
+-------------------------------------------------------------------------------
+RdvZ 2.0 development.
+ - usage of the PHP framework Symfony (www.symfony-project.org) for standard
+ programming methods and easy maintenance and community contribution.
+ - three authentication methods : MySQL, CAS + LDAP and LDAP without CAS (which
+ isn't supported now).
+ - display of the meeting's URL in the poll page.
+ - reduction of the size of the URLs.
+ - design improvements.
+ - poll and vote system to be developped.
+ - built-in installer.
+
+-------------------------------------------------------------------------------
+Future features.
+ - writing meetings in the diary.
+ - defining specific meetings (ex : weekly meeting).
+ - Shibboleth support.
+ - Sympa integration.
+
+-------------------------------------------------------------------------------
+RdvZ evolution.
+ - bugfixes.
+ - deployment procedures improvement.
+ - community development and support.
+
+-------------------------------------------------------------------------------
View
40 apps/frontend/config/app.yml
@@ -0,0 +1,40 @@
+# default values
+all:
+ cas_server:
+ host: cas.univ-avignon.fr
+ port: 443
+ path:
+
+ ldap_server:
+ host: ldap.univ-avignon.fr
+ port: 389
+ basedn: dc=univ-avignon,dc=fr
+ options: {<?php echo LDAP_OPT_PROTOCOL_VERSION ?>: 3}
+
+ bdd_server:
+ host: localhost
+ pdo: mysql
+ dbname: rdvz
+ username: root
+ password: celine
+
+ bdd_infos:
+ user_pass_encrypt: none
+ user_table_name: user
+ user_login_field: login
+ user_pass_field: pass
+ user_name_field: name
+ user_surname_field: surname
+ user_mail_field: mail
+
+ ldap_infos:
+ user_name_field: sn
+ user_surname_field: givenname
+ user_mail_field: mail
+
+ url: rdvz.localhost
+ profile_builder_class: uapvProfileBuilderDatabase
+# authentication_type: 'ldap_cas'
+ authentication_type: bd
+# user_id: uidnumber
+ user_id: id
View
4 apps/frontend/config/cache.yml
@@ -0,0 +1,4 @@
+default:
+ enabled: false
+ with_layout: false
+ lifetime: 86400
View
65 apps/frontend/config/factories.yml
@@ -0,0 +1,65 @@
+prod:
+ logger:
+ class: sfNoLogger
+ param:
+ level: err
+ loggers: ~
+
+cli:
+ controller:
+ class: sfConsoleController
+ request:
+ class: sfConsoleRequest
+ response:
+ class: sfConsoleResponse
+
+test:
+ storage:
+ class: sfSessionTestStorage
+ param:
+ session_path: %SF_TEST_CACHE_DIR%/sessions
+
+ response:
+ class: sfWebResponse
+ param:
+ send_http_headers: false
+
+#prod:
+# mailer:
+# param:
+# delivery_strategy: realtime
+
+dev:
+ mailer:
+ param:
+ delivery_strategy: none
+# delivery_strategy: single_address
+# delivery_address: romain.deveaud@gmail.com
+
+all:
+ mailer:
+ class: sfMailer
+ param:
+ logging: %SF_LOGGING_ENABLED%
+ charset: %SF_CHARSET%
+ delivery_strategy: realtime
+ transport:
+ class: Swift_SmtpTransport
+ param:
+ host: smtp.univ-avignon.fr
+ port: 587
+ encryption: ~
+ username: ~
+ password: ~
+
+ routing:
+ class: sfPatternRouting
+ param:
+ generate_shortest_url: true
+ extra_parameters_as_query_string: true
+
+ view_cache_manager:
+ class: sfViewCacheManager
+ param:
+ cache_key_use_vary_headers: true
+ cache_key_use_host_name: true
View
12 apps/frontend/config/filters.yml
@@ -0,0 +1,12 @@
+security: ~
+#security:
+# class: uapvSecurityFilterCas # Uniquement pour login
+# param: # cas + ldap.
+# type: security #
+rendering: ~
+
+
+# insert your own filters here
+
+cache: ~
+execution: ~
View
8 apps/frontend/config/frontendConfiguration.class.php
@@ -0,0 +1,8 @@
+<?php
+
+class frontendConfiguration extends sfApplicationConfiguration
+{
+ public function configure()
+ {
+ }
+}
View
19 apps/frontend/config/routing.yml
@@ -0,0 +1,19 @@
+meeting:
+ class: sfDoctrineRouteCollection
+ options: { model: meeting }
+meeting_show:
+ url: /meeting/show/h/:h
+ param: { module: meeting, action: show }
+# default rules
+homepage:
+ url: /
+ param: { module: meeting, action: index }
+
+# generic rules
+# please, remove them by adding more specific rules
+default_index:
+ url: /:module
+ param: { action: index }
+
+default:
+ url: /:module/:action/*
View
9 apps/frontend/config/security.yml
@@ -0,0 +1,9 @@
+authentication: # pour login bd ou ldap seul
+ is_secure: false #
+
+meeting:
+ is_secure: false
+
+all:
+ is_secure: true
+ credentials: [[member]]
View
37 apps/frontend/config/settings.yml
@@ -0,0 +1,37 @@
+prod:
+ .settings:
+ no_script_name: true
+ logging_enabled: false
+
+dev:
+ .settings:
+ error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
+ web_debug: true
+ cache: false
+ no_script_name: false
+ etag: false
+
+test:
+ .settings:
+ error_reporting: <?php echo ((E_ALL | E_STRICT) ^ E_NOTICE)."\n" ?>
+ cache: false
+ web_debug: false
+ no_script_name: false
+ etag: false
+
+all:
+ .settings:
+ # Form security secret (CSRF protection)
+ csrf_secret: dfac37facb8499c931c70a84c303594a8f9b55e0 # Unique secret to enable CSRF protection or false to disable
+ enabled_modules: [default, authentication]
+
+ # Output escaping settings
+ escaping_strategy: true # Determines how variables are made available to templates. Accepted values: true, false.
+ escaping_method: ESC_SPECIALCHARS # Function or helper used for escaping. Accepted values: ESC_RAW, ESC_ENTITIES, ESC_JS, ESC_JS_NO_ENTITIES, and ESC_SPECIALCHARS.
+
+ # Cache settings
+ lazy_cache_key: true # Delays creation of a cache key until after checking whether an action or partial is cacheable
+
+ .actions: # Uniquement pour login par
+ login_module: authentication # base de données ou ldap seul.
+ login_action: login #
View
17 apps/frontend/config/view.yml
@@ -0,0 +1,17 @@
+default:
+ http_metas:
+ content-type: text/html
+
+ metas:
+ #title: symfony project
+ #description: symfony project
+ #keywords: symfony, project
+ #language: en
+ #robots: index, follow
+
+ stylesheets: [main.css]
+
+ javascripts: []
+
+ has_layout: true
+ layout: layout
View
34 apps/frontend/lib/myUser.class.php
@@ -0,0 +1,34 @@
+<?php
+
+class myUser extends uapvBasicSecurityUser
+{
+ public function configure ()
+ {
+ //$user = $this->getUserFromDatabase ();
+ //$user->save ();
+
+ // définition des autorisation de l'utilisateur
+ //$this->addCredential ($this->getProfileVar ('edupersonaffiliation'));
+ sfContext::getInstance()->getLogger()->debug('####################### '.$this->getProfileVar('uidnumber')) ;
+ $this->addCredential ('member');
+ }
+
+ /**
+ * Retourne les données de l'utilisateur depuis la base de données.
+ * L'utilisateur sera créé s'il n'existe pas.
+ * @return User
+ */
+ /*
+ public function getUserFromDatabase ()
+ {
+ $user = SympaGroupsUserPeer::retrieveByLdapUid($this->getProfileVar('uidnumber')) ;
+ if ($user === null)
+ {
+ // L'utilisateur se connecte pour la première fois
+ $user = new SympaGroupsUser ();
+ $user->setLdapId($this->getProfileVar('uidnumber')) ;
+ }
+ return $user;
+ }
+ */
+}
View
203 apps/frontend/modules/meeting/actions/actions.class.php
@@ -0,0 +1,203 @@
+<?php
+
+/**
+ * meeting actions.
+ *
+ * @package rdvz
+ * @subpackage meeting
+ * @author Your name here
+ * @version SVN: $Id: actions.class.php 12474 2008-10-31 10:41:27Z fabien $
+ */
+class meetingActions extends sfActions
+{
+ public function executeIndex(sfWebRequest $request)
+ {
+ $mwnt = Doctrine::getTable('meeting')->getWithNoTitle() ;
+ foreach($mwnt as $m)
+ $m->delete() ;
+
+ $this->getUser()->setAttribute('mail', array()) ;
+ $this->getUser()->setAttribute('new', false) ;
+ $this->meeting_list = Doctrine::getTable('meeting')->getMeetingsFromUser($this->getUser()->getProfileVar(sfConfig::get('app_user_id'))) ;
+ }
+
+ public function executeShow(sfWebRequest $request)
+ {
+ $this->meeting = Doctrine::getTable('meeting')->getByHash($request->getParameter('h'));
+ $this->forward404Unless($this->meeting);
+
+ $this->meeting_dates = Doctrine::getTable('meeting_date')->retrieveByMid($this->meeting->getId()) ;
+ setlocale(LC_TIME,'fr_FR.utf8','fra') ;
+ }
+
+ public function executeShowua(sfWebRequest $request)
+ {
+ $this->meeting = Doctrine::getTable('meeting')->getByHash($request->getParameter('h'));
+ $this->forward404Unless($this->meeting);
+
+ $this->meeting_dates = Doctrine::getTable('meeting_date')->retrieveByMid($this->meeting->getId()) ;
+ setlocale(LC_TIME,'fr_FR.utf8','fra') ;
+ $this->form = new meeting_pollForm() ;
+
+ $this->setTemplate('show') ;
+ }
+
+ public function executeVoteclose(sfWebRequest $request)
+ {
+ $meeting = Doctrine::getTable('meeting')->find($request->getParameter('id'));
+
+ $closed = $meeting->getClosed() ? 0 : 1 ;
+ $meeting->setClosed($closed) ;
+ $meeting->save() ;
+
+ $this->redirect('homepage') ;
+ }
+
+ public function executeNew(sfWebRequest $request)
+ {
+ $m = new meeting() ;
+ $m->setTitle('') ;
+ $m->setDescription('') ;
+ $m->save() ;
+
+ $d = new meeting_date();
+ $d->setMid($m->getId()) ;
+ $d->setDate(date('Y-m-d')) ;
+ $d->save() ;
+
+ $this->getUser()->setAttribute('mail', array(0 => '')) ;
+ $this->getUser()->setAttribute('new', true) ;
+ $this->redirect('meeting/edit?id='.$m->getId());
+ }
+
+ public function executeCreate(sfWebRequest $request)
+ {
+ $this->forward404Unless($request->isMethod(sfRequest::POST));
+ $data = $request->getParameter('meeting');
+
+ $submit = ($request->hasParameter('submit') ? $request->getParameter('submit') : '_');
+ $submit = explode('_',$submit);
+
+ $this->processDates(&$data,$submit,&$meeting) ;
+
+ $this->form = new meetingForm($meeting);
+ $this->processForm($data, $this->form);
+
+ $this->setTemplate('new');
+ }
+
+ public function executeEdit(sfWebRequest $request)
+ {
+ $this->forward404Unless($meeting = Doctrine::getTable('meeting')->find($request->getParameter('id')), sprintf('Object meeting does not exist (%s).', $request->getParameter('id')));
+ $this->form = new meetingForm($meeting);
+ }
+
+ public function executeUpdate(sfWebRequest $request)
+ {
+ $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
+ $this->forward404Unless($meeting = Doctrine::getTable('meeting')->find($request->getParameter('id')), sprintf('Object meeting does not exist (%s).', $request->getParameter('id')));
+ $data = $request->getParameter('meeting');
+
+ $submit = ($request->hasParameter('submit') ? $request->getParameter('submit') : '_');
+ $submit = explode('_',$submit);
+
+ $this->processDates(&$data,$submit,&$meeting) ;
+
+ $this->getUser()->setAttribute('mail',$this->fetchMails($data)) ;
+ $this->form = new meetingForm($meeting);
+ $this->processForm($data, $this->form);
+
+ $this->setTemplate('edit');
+ }
+
+ public function executeDelete(sfWebRequest $request)
+ {
+ $request->checkCSRFProtection();
+
+ $this->forward404Unless($meeting = Doctrine::getTable('meeting')->find($request->getParameter('id')), sprintf('Object meeting does not exist (%s).', $request->getParameter('id')));
+ $meeting->delete();
+
+ $this->redirect('meeting/index');
+ }
+ public function executeRenderMailInput(sfWebRequest $request)
+ {
+ $this->getResponse()->setContentType('text/html; charset=utf-8');
+ $current_id = $request->getParameter('current_id');
+
+ $form = new meetingForm() ;
+
+ $widget = $form->createMailInput() ;
+ $html = $widget->render("meeting[input_mail_$current_id]") ;
+ return $this->renderText($html) ;
+ }
+
+ protected function processDates($data, $submit, $meeting)
+ {
+ switch ($submit[0])
+ {
+ case 'Nouveau':
+ $d = new meeting_date();
+ $d->setMid($meeting->getId()) ;
+ $d->setDate(date('Y-m-d')) ;
+ $d->save() ;
+ $meeting['meeting_dates'][] = $d ;
+ break;
+ case 'Supprimer':
+ $this->forward404Unless($date = Doctrine::getTable('meeting_date')->find($submit[1]));
+ unset($data['date_'.$date['id']]) ;
+ $date->delete();
+ break;
+ default : break ;
+ }
+ }
+
+ protected function fetchMails($data, $strict = false)
+ {
+ $mails = array() ;
+
+ foreach ($data as $widget => $value)
+ {
+ if(preg_match('/input_mail_*/',$widget))
+ {
+ if ($strict && preg_match('/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/', $value))
+ $mails[] = $value ;
+ elseif (!$strict)
+ $mails[] = $value ;
+ }
+ }
+
+ return $mails ;
+ }
+
+ protected function processForm($data, sfForm $form)
+ {
+ $form->bind($data) ;
+
+ if ($form->isValid())
+ {
+ $meeting = $form->save();
+ $mails = $this->fetchMails($data,true) ;
+ $this->getUser()->setAttribute('mail', array()) ;
+ $this->getUser()->setAttribute('new', false) ;
+
+ $this->sendMails($mails,$meeting) ;
+
+ $this->redirect('homepage') ;
+ }
+ }
+
+ protected function sendMails($mails,$meeting)
+ {
+ $mailBody = $this->getPartial('meeting/notif_new_meeting', array('user' => Doctrine::getTable('user')->find($meeting->getUid()), 'meeting' => $meeting)) ;
+ $subject = "[RDVZ] Proposition de rendez-vous" ;
+
+ try {
+ foreach($mails as $mail)
+ $this->getMailer()->composeAndSend('rdvz-admin@univ-avignon.fr', $mail, $subject, $mailBody);
+ }
+ catch(Exception $e)
+ {
+ echo $e->getMessage();
+ }
+ }
+}
View
2 apps/frontend/modules/meeting/config/security.yml
@@ -0,0 +1,2 @@
+showua:
+ is_secure: false
View
32 apps/frontend/modules/meeting/templates/_form.php
@@ -0,0 +1,32 @@
+<?php use_stylesheets_for_form($form) ?>
+<?php use_javascripts_for_form($form) ?>
+
+<form action="<?php echo url_for('meeting/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id='.$form->getObject()->getId() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
+<?php if (!$form->getObject()->isNew()): ?>
+<input type="hidden" name="sf_method" value="put" />
+<?php endif; ?>
+ <table>
+ <tfoot>
+ <tr>
+ <td colspan="1">
+ <?php if (!$form->getObject()->isNew()): ?>
+ &nbsp;<?php echo link_to('Effacer', 'meeting/delete?id='.$form->getObject()->getId(), array('method' => 'delete', 'confirm' => 'Voulez-vous vraiment supprimer ce rendez-vous?')) ?>
+ <?php endif; ?>
+ <input type="submit" value="<?php echo $sf_user->getAttribute('new') ? 'Créer' : 'Modifier' ?> le rendez-vous" />
+ </td>
+ </tr>
+ </tfoot>
+ <tbody>
+ <?php echo $form['_csrf_token']->render() ?>
+ <?php //foreach($form as $widget): ?>
+ <?php //if ($widget->getName() == '_csrf_token') continue ; ?>
+<!-- <tr><th><?php // echo $widget->renderLabel() ?></th><td><?php // echo $widget->renderError() ?> <?php // echo $widget->render() ?>
+ <?php // if ($widget->getName() == 'input_date_1'): ?>
+ Commentaire <span class="mini_help">(optionnel)</span> : <input type="text" name="meeting[input_date_1_comment]" id="meeting_input_date_1_comment" />
+ <?php // endif ; ?>
+ </td></tr> -->
+ <?php // endforeach; ?>
+ <?php echo $form ?>
+ </tbody>
+ </table>
+</form>
View
9 apps/frontend/modules/meeting/templates/_notif_new_meeting.php
@@ -0,0 +1,9 @@
+Un rendez-vous vous est proposé par <?php echo $user->getName().' '.$user->getSurname().' ('.$user->getMail().')' ; ?> :
+<?php echo $meeting->getTitle() ?>
+
+Vous pouvez indiquer vos disponibilités en vous rendant à l'adresse suivante : http://<?php echo sfConfig::get('app_url').url_for('meeting/show?h='.$meeting->getHash()) ?> .
+
+Votes disponibles jusqu'au <?php setlocale(LC_TIME,'fr_FR.utf8','fra') ; $end = $meeting->getDateEnd() ; echo strftime("%A %d %B %Y", strtotime($end)) ?>.
+
+----
+Ceci est un message automatique, veuillez ne pas y répondre.
View
1 apps/frontend/modules/meeting/templates/editSuccess.php
@@ -0,0 +1 @@
+<?php include_partial('form', array('form' => $form)) ?>
View
32 apps/frontend/modules/meeting/templates/indexSuccess.php
@@ -0,0 +1,32 @@
+<h4>Mes rendez-vous</h4>
+
+<table class="my_meetings">
+ <thead>
+ <tr>
+ <th class="first">Code</th>
+ <th>Titre</th>
+ <th class="last">Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php setlocale(LC_TIME,'fr_FR.utf8','fra') ; ?>
+ <?php $i = 0 ; ?>
+ <?php foreach ($meeting_list as $meeting): ?>
+ <tr class="<?php echo $i++%2 ? 'even' : 'odd' ?>">
+ <td><?php echo $meeting->getHash() ?></td>
+ <td><div><a href="<?php echo url_for('meeting/show?h='.$meeting->getHash()) ?>"><?php echo $meeting->getTitle() ?></a></div>
+ <div>Fermeture automatique des votes le <?php echo strftime("%a %d %b %Y", strtotime($meeting->getDateEnd())) ?>.</div>
+ <div>Suppression automatique du sondage le <?php echo strftime("%a %d %b %Y", strtotime($meeting->getDateDel())) ?>.</div>
+ </td>
+ <td>
+ <div><a href="<?php echo url_for('meeting/edit?id='.$meeting->getId()) ?>"><img class="icon_16" src="/images/book_16.png" alt="Modifier" /> Modifier</a></div>
+ <div><a href="#"><img class="icon_16" src="/images/page_table_chart_16.png" alt="Exporter csv" /> Exporter au format csv</a></div>
+ <div><?php echo link_to('<img class="icon_16" src="/images/book_close_16.png" alt="Effacer" /> Effacer', 'meeting_delete', $meeting, array('method' => 'delete', 'confirm' => 'Voulez-vous vraiment supprimer ce rendez-vous?')) ?></div>
+ <div><a href="<?php echo url_for('meeting/voteclose?id='.$meeting->getId()) ?>"><?php echo $meeting->getClosed() ? '<img class="icon_16" src="/images/lock_16.png" alt="Rouvrir les votes" /> Rouvrir les votes' : '<img class="icon_16" src="/images/lock_open_16.png" alt="Clore les votes" /> Clore les votes' ?></a></div>
+ </td>
+ </tr>
+ <?php endforeach; ?>
+ </tbody>
+</table>
+
+ <a href="<?php echo url_for('meeting/new') ?>"><img class="icon_32" src="/images/book_add_32.png" alt="Nouveau rendez-vous" /> Nouveau rendez-vous</a>
View
2 apps/frontend/modules/meeting/templates/newSuccess.php
@@ -0,0 +1,2 @@
+<h1>New Meeting</h1>
+<?php include_partial('form', array('form' => $form)) ?>
View
74 apps/frontend/modules/meeting/templates/showSuccess.php
@@ -0,0 +1,74 @@
+<h2><img src="/images/book_bookmarks_32.png" alt="Disponibilités" class="icon_32" /> Quelles sont vos disponibilités?</h2>
+<table>
+ <tbody>
+ <tr>
+ <th>Titre : </th>
+ <td><?php echo $meeting->getTitle() ?></td>
+ </tr>
+ <tr>
+ <th>Description : </th>
+ <td><?php echo $meeting->getdescription() ?></td>
+ </tr>
+ <tr>
+ <th>Createur : </th>
+ <td><?php $createur = Doctrine::getTable('user')->find($meeting->getUid()) ; echo $createur->getSurname().' '.$createur->getName() ?></td>
+ </tr>
+ </tbody>
+</table>
+<br />
+Indiquez votre sélection en cliquant sur les cases à cocher. Utilisez ensuite le bouton "Participer" pour valider votre vote.
+<br />
+<br />
+<?php
+ $dates = array() ;
+ $months = array() ;
+ $comments = array() ;
+ foreach($meeting_dates as $d)
+ {
+ $f = strtotime($d->getDate()) ;
+ $months[] = strftime("%B %Y",$f) ;
+ $dates[strftime("%B %Y", $f)][] = strftime("%a %d", $f) ;
+ if ($d->getComment() != '')
+ $comments[] = $d->getComment() ;
+ }
+ $months = array_unique($months) ;
+?>
+<table id="poll">
+ <tr class="poll_months">
+ <!-- La ligne qui affiche les mois... -->
+ <td class="poll_empty"></td>
+ <?php foreach($months as $m): ?>
+ <td class="poll_month" colspan="<?php echo count($dates[$m]) ?>"><?php echo $m ?></td>
+ <?php endforeach; ?>
+ </tr>
+ <tr>
+ <!-- La ligne qui affiche les jours... -->
+ <td class="poll_empty"></td>
+ <?php foreach($dates as $m => $days): ?>
+ <?php foreach($days as $d): ?>
+ <td colspan="1" class="poll_td">
+ <?php echo $d ?>
+ </td>
+ <?php endforeach; ?>
+ <?php endforeach; ?>
+ </tr>
+ <tr class="poll_comments">
+ <!-- La ligne qui affiche les commentaires... -->
+ <td class="poll_empty"></td>
+ <?php foreach($comments as $comment): ?>
+ <td colspan="1" class="poll_td">
+ <?php echo $comment ?>
+ </td>
+ <?php endforeach; ?>
+ </tr>
+ <tr>
+ <!-- La ligne qui affiche les votes déjà effectués... -->
+ </tr>
+ <?php echo $form ?>
+</table>
+
+<table id="legende">
+<tr><td class="ok" colspan="1"></td><td>Disponible</td></tr>
+<tr><td class="if_needed" colspan="1"></td><td>Disponible en cas de besoin</td></tr>
+<tr><td class="not_ok" colspan="1"></td><td>Non disponible</td></tr>
+</table>
View
34 apps/frontend/templates/layout.php
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
+ <head>
+ <title>
+ <?php if (!include_slot('title')): ?>
+ RdvZ 2.0
+ <?php else : ?>
+ <?php include_title() ?>
+ <?php endif; ?>
+ </title>
+ <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
+ <?php include_http_metas() ?>
+ <?php include_metas() ?>
+ <link rel="shortcut icon" href="/favicon.ico" />
+ <?php include_stylesheets() ?>
+ </head>
+ <body>
+ <div id="menu">
+ <?php echo link_to('Mes rendez-vous','homepage') ?>
+ </div>
+ <div id="page">
+ <?php if ($sf_user->hasFlash('notice')): ?>
+ <div class="flash_notice"><?php echo $sf_user->getFlash('notice') ?></div>
+ <?php endif; ?>
+
+ <?php if ($sf_user->hasFlash('error')): ?>
+ <div class="flash_error"><?php echo $sf_user->getFlash('error') ?></div>
+ <?php endif; ?>
+
+ <?php echo $sf_content ?>
+ </div>
+ <?php include_javascripts() ?>
+ </body>
+</html>
View
13 config/ProjectConfiguration.class.php
@@ -0,0 +1,13 @@
+<?php
+
+require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
+sfCoreAutoload::register();
+
+class ProjectConfiguration extends sfProjectConfiguration
+{
+ public function setup()
+ {
+ $this->enablePlugins('sfDoctrinePlugin','uapvAuthPlugin');
+ $this->enablePlugins('sfFormExtraPlugin');
+ }
+}
View
14 config/databases.yml
@@ -0,0 +1,14 @@
+all:
+ doctrine:
+ class: sfDoctrineDatabase
+ param:
+ dsn: 'mysql:host=localhost;dbname=rdvz'
+ username: root
+ password: celine
+
+# user:
+# class: sfDoctrineDatabase
+# param:
+# dsn: 'mysql:host=localhost;dbname=rdvz_users'
+# username: root
+# password: celine
View
43 config/doctrine/schema.yml
@@ -0,0 +1,43 @@
+meeting:
+# connection: master
+ actAs: { Timestampable: ~ }
+ columns:
+ hash: { type: string(6), notnull: true }
+ title: { type: string(255), notnull: true }
+ description: { type: string(4000), notnull: true }
+ uid: { type: integer }
+ closed: { type: integer, default: 0 }
+ date_del: { type: timestamp }
+ date_end: { type: timestamp }
+ aifna: { type: integer, default: 0 } # autoriser les votes "disponible en cas de besoin"
+ notif: { type: integer, default: 0 } # recevoir une notification par mail à chaque vote
+
+meeting_date:
+# connection: master
+ columns:
+ mid: { type: integer, notnull: true }
+ date: { type: timestamp, notnull: true }
+ comment: { type: string(255) }
+ relations:
+ meeting: { onDelete: CASCADE, local: mid, foreign: id, foreignAlias: meeting_dates }
+
+meeting_poll:
+# connection: master
+ actAs: { Timestampable: ~ }
+ columns:
+ date_id: { type: integer, notnull: true }
+ poll: { type: integer, notnull: true }
+ uid: { type: integer }
+ comment: { type: string(255) }
+ participant_name: { type: string(255) }
+ relations:
+ meeting_date: { onDelete: CASCADE, local: date_id, foreign: id, foreignAlias: meeting_polls }
+
+user:
+# connection: user
+ columns:
+ login: { type: string(50) }
+ pass: { type: string(40) }
+ name: { type: string(255) }
+ surname: { type: string(255) }
+ mail: { type: string(255) }
View
3 config/properties.ini
@@ -0,0 +1,3 @@
+[symfony]
+ name=rdvz
+ orm=Doctrine
View
15 config/rsync_exclude.txt
@@ -0,0 +1,15 @@
+# Project files
+/cache/*
+/log/*
+/web/*_dev.php
+/web/uploads/*
+
+# SCM files
+.arch-params
+.bzr
+_darcs
+.git
+.hg
+.monotone
+.svn
+CVS
View
26 data/fixtures/data.yml
@@ -0,0 +1,26 @@
+<?php
+$configuration = ProjectConfiguration::getApplicationConfiguration
+('frontend', 'prod', false);
+
+sfContext::createInstance($configuration);
+?>
+
+meeting:
+ meeting_5:
+ title: plop
+ description: plopsfz
+ hash: 12lka5
+ uid: '8802366'
+ closed: '0'
+ date_del: '2010-03-25 00:00:00'
+ date_end: '2010-02-25 00:00:00'
+ aifna: '0'
+ notif: '0'
+ created_at: '2009-11-25 15:47:33'
+ updated_at: '2009-11-26 17:40:25'
+user:
+ user_1:
+ login: sit
+ pass: celine
+ name: Deveaud
+ surname: Romain
View
17 data/fixtures/fixtures.yml
@@ -0,0 +1,17 @@
+# # Populate this file with data to be loaded by your ORM's *:data-load task.
+# # You can create multiple files in this directory (i.e. 010_users.yml,
+# # 020_articles.yml, etc) which will be loaded in alphabetical order.
+# #
+# # See documentation for your ORM's *:data-load task for more information.
+#
+# User:
+# fabien:
+# username: fabien
+# password: changeme
+# name: Fabien Potencier
+# email: fabien.potencier@symfony-project.com
+# kris:
+# username: Kris.Wallsmith
+# password: changeme
+# name: Kris Wallsmith
+# email: kris.wallsmith@symfony-project.com
View
6 data/sql/schema.sql
@@ -0,0 +1,6 @@
+CREATE TABLE meeting (id BIGINT AUTO_INCREMENT, hash VARCHAR(6) NOT NULL, title VARCHAR(255) NOT NULL, description TEXT NOT NULL, uid BIGINT, closed BIGINT DEFAULT 0, date_del DATETIME, date_end DATETIME, aifna BIGINT DEFAULT 0, notif BIGINT DEFAULT 0, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(id)) ENGINE = INNODB;
+CREATE TABLE meeting_date (id BIGINT AUTO_INCREMENT, mid BIGINT NOT NULL, date DATETIME NOT NULL, comment VARCHAR(255), INDEX mid_idx (mid), PRIMARY KEY(id)) ENGINE = INNODB;
+CREATE TABLE meeting_poll (id BIGINT AUTO_INCREMENT, date_id BIGINT NOT NULL, poll BIGINT NOT NULL, uid BIGINT, comment VARCHAR(255), participant_name VARCHAR(255), created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX date_id_idx (date_id), PRIMARY KEY(id)) ENGINE = INNODB;
+CREATE TABLE user (id BIGINT AUTO_INCREMENT, login VARCHAR(50), pass VARCHAR(40), name VARCHAR(255), surname VARCHAR(255), mail VARCHAR(255), PRIMARY KEY(id)) ENGINE = INNODB;
+ALTER TABLE meeting_date ADD CONSTRAINT meeting_date_mid_meeting_id FOREIGN KEY (mid) REFERENCES meeting(id) ON DELETE CASCADE;
+ALTER TABLE meeting_poll ADD CONSTRAINT meeting_poll_date_id_meeting_date_id FOREIGN KEY (date_id) REFERENCES meeting_date(id) ON DELETE CASCADE;
View
16 lib/filter/doctrine/BaseFormFilterDoctrine.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * Project filter form base class.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+abstract class BaseFormFilterDoctrine extends sfFormFilterDoctrine
+{
+ public function setup()
+ {
+ }
+}
View
74 lib/filter/doctrine/base/BasemeetingFormFilter.class.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * meeting filter form base class.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class BasemeetingFormFilter extends BaseFormFilterDoctrine
+{
+ public function setup()
+ {
+ $this->setWidgets(array(
+ 'hash' => new sfWidgetFormFilterInput(array('with_empty' => false)),
+ 'title' => new sfWidgetFormFilterInput(array('with_empty' => false)),
+ 'description' => new sfWidgetFormFilterInput(array('with_empty' => false)),
+ 'uid' => new sfWidgetFormFilterInput(),
+ 'closed' => new sfWidgetFormFilterInput(),
+ 'date_del' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
+ 'date_end' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
+ 'aifna' => new sfWidgetFormFilterInput(),
+ 'notif' => new sfWidgetFormFilterInput(),
+ 'created_at' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => false)),
+ 'updated_at' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => false)),
+ ));
+
+ $this->setValidators(array(
+ 'hash' => new sfValidatorPass(array('required' => false)),
+ 'title' => new sfValidatorPass(array('required' => false)),
+ 'description' => new sfValidatorPass(array('required' => false)),
+ 'uid' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'closed' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'date_del' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ 'date_end' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ 'aifna' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'notif' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'created_at' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ 'updated_at' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ ));
+
+ $this->widgetSchema->setNameFormat('meeting_filters[%s]');
+
+ $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
+
+ $this->setupInheritance();
+
+ parent::setup();
+ }
+
+ public function getModelName()
+ {
+ return 'meeting';
+ }
+
+ public function getFields()
+ {
+ return array(
+ 'id' => 'Number',
+ 'hash' => 'Text',
+ 'title' => 'Text',
+ 'description' => 'Text',
+ 'uid' => 'Number',
+ 'closed' => 'Number',
+ 'date_del' => 'Date',
+ 'date_end' => 'Date',
+ 'aifna' => 'Number',
+ 'notif' => 'Number',
+ 'created_at' => 'Date',
+ 'updated_at' => 'Date',
+ );
+ }
+}
View
50 lib/filter/doctrine/base/Basemeeting_dateFormFilter.class.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * meeting_date filter form base class.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class Basemeeting_dateFormFilter extends BaseFormFilterDoctrine
+{
+ public function setup()
+ {
+ $this->setWidgets(array(
+ 'mid' => new sfWidgetFormDoctrineChoice(array('model' => 'meeting', 'add_empty' => true)),
+ 'date' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => false)),
+ 'comment' => new sfWidgetFormFilterInput(),
+ ));
+
+ $this->setValidators(array(
+ 'mid' => new sfValidatorDoctrineChoice(array('required' => false, 'model' => 'meeting', 'column' => 'id')),
+ 'date' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ 'comment' => new sfValidatorPass(array('required' => false)),
+ ));
+
+ $this->widgetSchema->setNameFormat('meeting_date_filters[%s]');
+
+ $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
+
+ $this->setupInheritance();
+
+ parent::setup();
+ }
+
+ public function getModelName()
+ {
+ return 'meeting_date';
+ }
+
+ public function getFields()
+ {
+ return array(
+ 'id' => 'Number',
+ 'mid' => 'ForeignKey',
+ 'date' => 'Date',
+ 'comment' => 'Text',
+ );
+ }
+}
View
62 lib/filter/doctrine/base/Basemeeting_pollFormFilter.class.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * meeting_poll filter form base class.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class Basemeeting_pollFormFilter extends BaseFormFilterDoctrine
+{
+ public function setup()
+ {
+ $this->setWidgets(array(
+ 'date_id' => new sfWidgetFormDoctrineChoice(array('model' => 'meeting_date', 'add_empty' => true)),
+ 'poll' => new sfWidgetFormFilterInput(array('with_empty' => false)),
+ 'uid' => new sfWidgetFormFilterInput(),
+ 'comment' => new sfWidgetFormFilterInput(),
+ 'participant_name' => new sfWidgetFormFilterInput(),
+ 'created_at' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => false)),
+ 'updated_at' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => false)),
+ ));
+
+ $this->setValidators(array(
+ 'date_id' => new sfValidatorDoctrineChoice(array('required' => false, 'model' => 'meeting_date', 'column' => 'id')),
+ 'poll' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'uid' => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
+ 'comment' => new sfValidatorPass(array('required' => false)),
+ 'participant_name' => new sfValidatorPass(array('required' => false)),
+ 'created_at' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ 'updated_at' => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 00:00:00')), 'to_date' => new sfValidatorDateTime(array('required' => false, 'datetime_output' => 'Y-m-d 23:59:59')))),
+ ));
+
+ $this->widgetSchema->setNameFormat('meeting_poll_filters[%s]');
+
+ $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
+
+ $this->setupInheritance();
+
+ parent::setup();
+ }
+
+ public function getModelName()
+ {
+ return 'meeting_poll';
+ }
+
+ public function getFields()
+ {
+ return array(
+ 'id' => 'Number',
+ 'date_id' => 'ForeignKey',
+ 'poll' => 'Number',
+ 'uid' => 'Number',
+ 'comment' => 'Text',
+ 'participant_name' => 'Text',
+ 'created_at' => 'Date',
+ 'updated_at' => 'Date',
+ );
+ }
+}
View
56 lib/filter/doctrine/base/BaseuserFormFilter.class.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * user filter form base class.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class BaseuserFormFilter extends BaseFormFilterDoctrine
+{
+ public function setup()
+ {
+ $this->setWidgets(array(
+ 'login' => new sfWidgetFormFilterInput(),
+ 'pass' => new sfWidgetFormFilterInput(),
+ 'name' => new sfWidgetFormFilterInput(),
+ 'surname' => new sfWidgetFormFilterInput(),
+ 'mail' => new sfWidgetFormFilterInput(),
+ ));
+
+ $this->setValidators(array(
+ 'login' => new sfValidatorPass(array('required' => false)),
+ 'pass' => new sfValidatorPass(array('required' => false)),
+ 'name' => new sfValidatorPass(array('required' => false)),
+ 'surname' => new sfValidatorPass(array('required' => false)),
+ 'mail' => new sfValidatorPass(array('required' => false)),
+ ));
+
+ $this->widgetSchema->setNameFormat('user_filters[%s]');
+
+ $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
+
+ $this->setupInheritance();
+
+ parent::setup();
+ }
+
+ public function getModelName()
+ {
+ return 'user';
+ }
+
+ public function getFields()
+ {
+ return array(
+ 'id' => 'Number',
+ 'login' => 'Text',
+ 'pass' => 'Text',
+ 'name' => 'Text',
+ 'surname' => 'Text',
+ 'mail' => 'Text',
+ );
+ }
+}
View
16 lib/filter/doctrine/meetingFormFilter.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * meeting filter form.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class meetingFormFilter extends BasemeetingFormFilter
+{
+ public function configure()
+ {
+ }
+}
View
16 lib/filter/doctrine/meeting_dateFormFilter.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * meeting_date filter form.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class meeting_dateFormFilter extends Basemeeting_dateFormFilter
+{
+ public function configure()
+ {
+ }
+}
View
16 lib/filter/doctrine/meeting_pollFormFilter.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * meeting_poll filter form.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class meeting_pollFormFilter extends Basemeeting_pollFormFilter
+{
+ public function configure()
+ {
+ }
+}
View
16 lib/filter/doctrine/userFormFilter.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * user filter form.
+ *
+ * @package rdvz
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class userFormFilter extends BaseuserFormFilter
+{
+ public function configure()
+ {
+ }
+}
View
13 lib/form/BaseForm.class.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * Base project form.
+ *
+ * @package rdvz
+ * @subpackage form
+ * @author Your name here
+ * @version SVN: $Id: BaseForm.class.php 20147 2009-07-13 11:46:57Z FabianLange $
+ */
+class BaseForm extends sfFormSymfony
+{
+}
View
16 lib/form/doctrine/BaseFormDoctrine.class.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * Project form base class.
+ *
+ * @package rdvz
+ * @subpackage form
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+abstract class BaseFormDoctrine extends sfFormDoctrine
+{
+ public function setup()
+ {
+ }
+}
View
59 lib/form/doctrine/base/BasemeetingForm.class.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * meeting form base class.
+ *
+ * @package rdvz
+ * @subpackage form
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class BasemeetingForm extends BaseFormDoctrine
+{
+ public function setup()
+ {
+ $this->setWidgets(array(
+ 'id' => new sfWidgetFormInputHidden(),
+ 'hash' => new sfWidgetFormInputText(),
+ 'title' => new sfWidgetFormInputText(),
+ 'description' => new sfWidgetFormTextarea(),
+ 'uid' => new sfWidgetFormInputText(),
+ 'closed' => new sfWidgetFormInputText(),
+ 'date_del' => new sfWidgetFormDateTime(),
+ 'date_end' => new sfWidgetFormDateTime(),