Mercurial > altnet-hispano
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