changeset 162:557c386fcecc

Ticket 153: UI de Publicar.
author juanjose.montesdeocaarbos
date Fri, 05 Aug 2011 22:02:23 -0300
parents c1062de96845
children 56f62516c172
files Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.Designer.cs Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.resx Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs Agendas/trunk/src/Agendas.Web/Views/Evento/Publicar.cshtml
diffstat 6 files changed, 153 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.Designer.cs	Fri Aug 05 21:54:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.Designer.cs	Fri Aug 05 22:02:23 2011 -0300
@@ -61,6 +61,24 @@
         }
         
         /// <summary>
+        ///   Busca una cadena traducida similar a Duración.
+        /// </summary>
+        public static string DuracionReal {
+            get {
+                return ResourceManager.GetString("DuracionReal", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Busca una cadena traducida similar a Tiempo que duró la presentación..
+        /// </summary>
+        public static string DuracionRealDescription {
+            get {
+                return ResourceManager.GetString("DuracionRealDescription", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Correo electrónico.
         /// </summary>
         public static string EMail {
@@ -97,6 +115,24 @@
         }
         
         /// <summary>
+        ///   Busca una cadena traducida similar a Nro. de Orden.
+        /// </summary>
+        public static string NroOrden {
+            get {
+                return ResourceManager.GetString("NroOrden", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Busca una cadena traducida similar a Un número consecutivo que identifica al evento en el tiempo..
+        /// </summary>
+        public static string NroOrdenDescription {
+            get {
+                return ResourceManager.GetString("NroOrdenDescription", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Seleccione el ponente o responsable del evento.
         /// </summary>
         public static string PonenteDescription {
@@ -194,5 +230,23 @@
                 return ResourceManager.GetString("UrlInvitacionUrl", resourceCulture);
             }
         }
+        
+        /// <summary>
+        ///   Busca una cadena traducida similar a Url de la Wiki.
+        /// </summary>
+        public static string UrlWiki {
+            get {
+                return ResourceManager.GetString("UrlWiki", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Busca una cadena traducida similar a La url donde se publica la presentación..
+        /// </summary>
+        public static string UrlWikiDescription {
+            get {
+                return ResourceManager.GetString("UrlWikiDescription", resourceCulture);
+            }
+        }
     }
 }
--- a/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.resx	Fri Aug 05 21:54:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.resx	Fri Aug 05 22:02:23 2011 -0300
@@ -117,6 +117,12 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <data name="DuracionReal" xml:space="preserve">
+    <value>Duración</value>
+  </data>
+  <data name="DuracionRealDescription" xml:space="preserve">
+    <value>Tiempo que duró la presentación.</value>
+  </data>
   <data name="EMail" xml:space="preserve">
     <value>Correo electrónico</value>
   </data>
@@ -129,6 +135,12 @@
   <data name="NombreDescription" xml:space="preserve">
     <value>Nombre de la persona que identifica a esta persona entre todas</value>
   </data>
+  <data name="NroOrden" xml:space="preserve">
+    <value>Nro. de Orden</value>
+  </data>
+  <data name="NroOrdenDescription" xml:space="preserve">
+    <value>Un número consecutivo que identifica al evento en el tiempo.</value>
+  </data>
   <data name="PonenteDescription" xml:space="preserve">
     <value>Seleccione el ponente o responsable del evento</value>
   </data>
@@ -162,4 +174,10 @@
   <data name="UrlInvitacionUrl" xml:space="preserve">
     <value>la url ingresada no es válida</value>
   </data>
+  <data name="UrlWiki" xml:space="preserve">
+    <value>Url de la Wiki</value>
+  </data>
+  <data name="UrlWikiDescription" xml:space="preserve">
+    <value>La url donde se publica la presentación.</value>
+  </data>
 </root>
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj	Fri Aug 05 21:54:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj	Fri Aug 05 22:02:23 2011 -0300
@@ -220,6 +220,7 @@
     <Content Include="Views\Shared\DefaultEditor.cshtml" />
   </ItemGroup>
   <ItemGroup>
+    <Content Include="Views\Evento\Publicar.cshtml" />
     <Content Include="Views\Shared\_MenuPortal.cshtml" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
--- a/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs	Fri Aug 05 21:54:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs	Fri Aug 05 22:02:23 2011 -0300
@@ -77,10 +77,36 @@
 		public ActionResult Publicar(string id)
 		{
 			var agenda = AgendaFactory.GetAgenda();
-			agenda.Publicar(new Guid(id), 0, string.Empty);
+			var evento = agenda.GetEvento(new Guid(id));
+
+			var model = new EventoPublicarModel
+			{
+				Id = id,
+				Titulo = evento.Titulo,
+				NroOrden = 0, //TODO: Obtener el último y sumarle uno.
+				UrlWiki = evento.UrlWiki,
+				DuracionReal = new TimeSpan(0, 0, 0)
+			};
+			return View(model);
+		}
 
-			this.AddNotification("Evento publicado");
-			return RedirectToAction("Index");
+		[HttpPost]
+		[Authorize]
+		public ActionResult Publicar(EventoPublicarModel model)
+		{
+			if (ModelState.IsValid)
+			{
+				var agenda = AgendaFactory.GetAgenda();
+
+				var r = agenda.Publicar(new Guid(model.Id), model.NroOrden, model.UrlWiki);
+				if (r.Succeful)
+				{
+					this.AddNotification(string.Format("Evento publicado {0}", model.Titulo));
+					return RedirectToAction("Index");
+				}
+				ModelState.AddModelError("error", r.ToString());
+			}
+			return View(model);
 		}
 
 		[Authorize]
--- a/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Fri Aug 05 21:54:43 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Models/EventoModel.cs	Fri Aug 05 22:02:23 2011 -0300
@@ -65,6 +65,29 @@
 		public string UrlInvitacion { get; set; }
 	}
 
+	public class EventoPublicarModel
+	{
+		[HiddenInput(DisplayValue = false)]
+		public string Id { get; set; }
+
+		[Required]
+		[HiddenInput]
+		public string Titulo { get; set; }
+
+		[Required]
+		[UIHint("NroOrden")]
+		[Range(1, short.MaxValue)]
+		public short NroOrden { get; set; }
+
+		[Required]
+		[Url]
+		public string UrlWiki { get; set; }
+
+		[Required]
+		[UIHint("DuracionReal")]
+		public TimeSpan DuracionReal { get; set; }
+	}
+
 	public class EventoDto
 	{
 		public string Id { get; set; }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Web/Views/Evento/Publicar.cshtml	Fri Aug 05 22:02:23 2011 -0300
@@ -0,0 +1,28 @@
+@model AltNetHispano.Agendas.Web.Models.EventoPublicarModel
+<h2>Agenda</h2>
+<p>
+    Modifique los datos que desea corregir y presione guardar
+</p>
+
+<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
+<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
+
+<script type="text/javascript">
+	$(document).ready(function () {
+		$("#Fecha").datepicker({ dateFormat: 'dd-mm-yy' });
+	});
+</script>
+
+@using (Html.BeginForm())
+{
+    @Html.ValidationSummary(true, "Los datos ingresados no son validos, por favor verifíquelos")
+    <div>
+        <fieldset>
+            <legend>Datos del evento:</legend>
+            @Html.EditorForModel()
+            <p>
+                <input type="submit" value="Guardar" />
+            </p>
+        </fieldset>
+    </div>
+}
\ No newline at end of file