WAM
Contenido
- Personas
- Módulos
- Buscador
- Perfil
- Cambio de contraseña
- Recuperación de Contraseña

Personas
Fue creado un modelo del tipo activeldap llamado people, el cual tendra una base general y reconocera a cualquier unidad con un dn=uid
# app/models/people
class People < ActiveLdap::Base
ldap_mapping dn_attribute: "uid",
prefix: ""
...
end
Modulos
- Buscador
- Edición de Información.
- Cambio y recuperación de contraseña.
En proceso..
- Creación de usuarios.

Buscador
El buscador se conecta de forma directa con el servidor de ldap utilizando metodos de activeldap.
if People.find(:all,
:filter => {:cn => '*',
:uid => busqueda})
&& People.find(:all,
:filter => {:cn => busqueda,
:uid => '*'})
@people = People.find(:all,
:filter => {:cn => busqueda,
:uid => '*'})
uids = People.find(:all, busqueda)Problemas
Al igual que con el buscador de wam, búsquedas generales como "a" o "s" pueden llegar a romper el buscador. Esto podría ser controlado mas adelante con un tiempo máximo de búsqueda.

Resultados
Los resultados de la búsqueda son reflejados en una tabla con su nombre completo y su email.

Perfil
En el espacio de usuario fue agregada una vista de perfil, la cual incluye la información básica, y los métodos de adición/edición de información y cambios de contraseña.

Recuperación de Contraseña

Módulo Permisos
Contenido
- Requerimientos
- Tipos de Usuarios
- Modelo
- Métodos
- Helpers
- Documentación

Requerimientos
El objetivo es diseñar un sistema que permita autorizar o no a los distintos usuarios a realizar las acciones que ofrece la plataforma. Debe ser de manera administrable desde una interfaz web.



Debe permitir mediante helpers consultar si un usuario puede o no realizar una acción cuando se intenta acceder a ella.
Diseñe el protocolo para asignar los permisos que mejor le parezca para lograr el objetivo.
Tomar en consideración que los permisos se asignan por acción y dependiendo de la unidad.
Tipos de Usuarios
Admin de Unidad
Super Admin
Admin de Unidad
Admin de Unidad





Usuario
Usuario
Usuario
Usuario
Usuario
Modelo

Métodos
-
Verifica si la unidad a la que se accede existe.
-
Verifica si el modelo al que se accede existe.
-
Verifica si la acción a la que se accede existe.
-
superadmin - acceso inmediato
-
admin de unidad - accede a la cualquier modelo de esa unidad.
-
usuario
-
Verifica si se tiene algún rol que pertenezca a la unidad.
-
Verifica si se tiene al menos un rol que tenga acceso al modelo y a la acción a la que se accede.
-
can_access_unit_and_action?
Core Method
Helpers
is_allow?(model_name, action_name)
admin?
Helper que filtra hipervínculos dependiendo de las acciones que puede realizar el usuario.
Helper que filtra los hipervínculos de administración en el sidebar.
# app/views/doc_category/index.html.erb
<% if is_allow? 'DocCategory', 'edit'%>
| <%= link_to "Editar", edit_unit_doc_category_path(@unit,category) %>
<% end %># app/views/layouts/application.html.erb
<% if admin? %>
<%= render "layouts/administration" %>
<% end -%>https://docs.google.com/document/d/1ti7z84PikmtP6jr4GAaDs-MHjdqyZu7RKgqa69Hmwfw/edit#heading=h.owqylzllembg
Documentación
google drive

Git
https://it.inf.utfsm.cl/projects/
practicas-2015/wiki/Desarrollo
Wiki
Módulo de
memorias

Contenido
- Diagrama de flujo

Diagrama Proceso de Titulación v2 basado en el modelo hecho por María José Vargas y conversaciones con Sra. Angela Miranda, secretaria de pregrado y Profesor Hubert Hoffmann, Jefe de Carrera.


Formulario
Registro Inscripción Tema de Memoria de Titulación
Otros Avances
http://204.87.169.114:3000/units/direccion/buy_orders
http://204.87.169.114:3000/units/pregrado/doc_categories
.../units/infraestructura-y-tecnologia/buy_orders
Friendly URLS
- Diccionario
- Diccionario
# app/models/dictionary.rb
class Dictionary < ActiveRecord::Base
def self.units
{ "direccion" => 1,
'pregrado' => 2,
'postgrado' => 3,
'investigacion' => 4,
'extension' => 5,
'infraestructura-y-tecnologia' => 6 }
end
end# app/controller/application_controller.rb
def current_unit
unit_name = request.env['PATH_INFO'].split('/')[2].to_s
return Dictionary.units[unit_name]
end# app/models/unit.rb
def to_param
"#{nombre}".parameterize
endCambiamos el nombre de la unidad en en la url
Extraemos el nombre de la unidad

Dictionary.unit['pregrado']

Joomla
Probar la posibilidad de integración con template de la Universidad.
En espera de Template


Módulo Orden de Compra
Contenido
- Gema Prawn
- Generación de pdf

Gema prawn
# Gemfile
gem 'prawn'
gem 'prawn-table', '~> 0.1.0'
# app/controllers/buy_order_controller.rb
def show_pdf
@order = BuyOrder.find(params[:buy_order_id])
pdf = ReportPdf.new(@order)
send_data pdf.render, filename: 'report.pdf', type: 'application/pdf'
endInstalación
Generar pdf
Gema prawn

Clase Prawn
class ReportPdf < Prawn::Document
def initialize(order)
super()
@order = order
header
move_down(20)
text "Orden de Compra n° " + @order.id.to_s
table_orden
move_down(20)
text "Detalle"
table_detalle
end
def header
image "#{Rails.root}/app/assets/images/Di-logo.png", width: 300, height: 43, position: :center
end
def text_content
y_position = cursor - 50
text "Orden de Compra n° " + @order.id.to_s
end
def table_orden
content = [["Fecha ingreso", @order.fecha],["Solicitante", @order.nombres],
["correo", @order.correo],["Area / Proyecto", @order.area_proyecto],
["Cuenta Presupuestaria", @order.cuenta_presupuestaria],["Descripcion", @order.descripcion],
["Valor Estimado", @order.estimativo]]
table content do
column(0).font_style = :bold
self.header = true
self.row_colors = ['DDDDDD', 'FFFFFF']
self.column_widths = [220, 320]
end
end
def table_detalle
...
end
def product_rows
..
end

Generación de pdf
Ordenes de Compra
Confirmar formato
Practica: Presentación Viernes 6
By Sam W
Practica: Presentación Viernes 6
- 930