wiki:redsur/redsur/Notasdesarrollo

Version 3 (modified by aosorio, 8 years ago) (diff)

Generado el campo phone y migrado en a la db.

Diaspora Installation/Debian/Wheezy? official

https://wiki.diasporafoundation.org/Installation/Debian/Wheezy?db=postgres&mode=development

*Database: PostgreSQL *Running mode: Development

Diaspora Installation/Debian/Jessie? official

https://wiki.diasporafoundation.org/Installation/Debian/Jessie?db=postgres&mode=development

*Database: PostgreSQL *Running mode: Development

Get the source - Diaspora

$ git clone https://github.com/diaspora/diaspora.git

$ cd diaspora

Configuration

Copy files

$ cp config/database.yml.example config/database.yml

$ cp config/diaspora.yml.example config/diaspora.yml

Configure

Bundle

It's time to install the Ruby libraries required by Diaspora:

$ gem install bundler

$ bin/bundle install  --with postgresql

Database setup

Double check your config/database.yml looks right and run:

$ bin/rake db:create db:schema:load

$ DB=postgres bin/rake db:create db:schema:load // Especificánde la DB.

$ DB=postgres bin/rake db:schema:load // Cuando ya tenemos la db creada.

Start Diaspora

It's time to start Diaspora:

$ ./script/server

$ DB=postgres ./script/server // Especificándo la base de datos, para saltarse algunas notificaciones.

Server diaspora running

$ run -p 3001 // Usando otro puerto, 3000 el predeterminado

Instalación de RedSur? desde los repositorios de cenditel

$ git clone https://mayaguaray.cenditel.gob.ve/desarrollo/scm/git/redsur.git

Hay que crear los ficheros diaspora.yml y database.yml a partir de los .example que ya vienen por defecto.

En el database.yml modificar el nombre de la base de datos y el usaurio:

postgres: &postgres
  adapter: postgresql
  host: localhost
  port: 5432
  username: redsur_desarrollo
  password: 123456
  encoding: unicode

Además especificar que se va a trabajar con postgresql:

common: &common
  # Choose one of the following
  #<<: *mysql
  <<: *postgres

y tambien especificar la db development:

development:
  <<: *combined
  database: redsur_desarrollo

Configurar url

En diaspora.yml modificar la URL para que las imágenes que se guardan en la base de datos tengan la dirección especificada.

Pondremos la dirección donde correra nuestro servidor local, ejemplo:

url: "http://192.168.12.xxx:3000"

Desactivar el captcha

## Enable captcha (default=true)
## Set this to false if you don't want to use captcha for signup process.
enable: false

Otros

Al momento de hacer el:

$ gem install bundler

$ DB=postgres bundle install // Para que no de error con mysql
 
$ bin/bundle install --with postgresql // Opcional al primero

Puede presentar problemas con la instalación del Mysql por lo que se puede comentar esa línea en el Gemfile.

ENV['DB'] ||= 'mysql'

#gem 'mysql2', '0.3.18' if ENV['DB'] == 'all' || ENV['DB'] == 'mysql'
gem 'pg',     '0.18.1' if ENV['DB'] == 'all' || ENV['DB'] == 'postgres'

Especificar la versión de rvm a usar

$ rvm use 2.2

$ DB=postgres bin/rake db:migrate RAILS_ENV=development // Creando los esquemas en la db, sobre todo si se agregó un nuevo modelo al esquema, alguna modificación.

$ DB=postgres bundle exec rake db:migrate RAILS_ENV=development // Saltar error de migracion si es necesario, spring, otros...

$ DB=postgres ./script/server

Creando un nuevo modelo

  • Se agregó un nuevo modelo que corresponde a las Areas de Texto de las

Poll: poll_text_area.rb

Este modelo tiene una relación uno-a-muchos (has_many -- belongs_to) con el modelo Poll.rb (el cual, a su vez, tiene la misma relación con el modelo StatusMessage?.rb.)

Comando para crear los modelos

$ DB=postgres rails generate model PollTextArea text:text

Luego modificar el modelo creado.

Generar la migración necesaria para crear asosioaciones entre la instancia creada y su raíz.

$ DB=postgres rails g migration AddPollTextAreaToPoll poll:belongs_to

$ DB=postgres rails g migration AddPollToPollTextArea poll:belongs_to

$ DB=postgres bin/rake db:migrate:status // Chequear las migraciones realizadas, cuales se levantaron y cuales estan pendientes o fallaron

$ DB=postgres bin/rake db:migrate RAILS_ENV=development // Para levantar las migraciones creadas, si hay conflictos, se puede borrar el campo de la tabla y volver a migrar, por lo general poll_id from polls.
  • Además se modificaron otros modelos.
  • El controlador status_messages_controller.rb recibe de

publisher_view.js (backbone) los parámetros de los controles (p.ej. las areas de texto) a partir de los cuales debe crear las instancias de los modelos (p.ej. el modelo en rails para las areas de texto) que tienen la relación uno-a-muchos (has_many -- belongs_to).

Generar la migración necesaria para agregar el area de texto a las tablas correspondientes

$ DB=postgres rails g migration AddPollTextAreaToPoll poll:belongs_to

$ DB=postgres rails g migration AddPollToPollTextArea poll:belongs_to

Añadiendo nuevo atributo al profile

$ DB=postgres rails g migration AddIsgroupToProfiles

Modificar la nueva migracion en /db/migrate --> xxxxxxxxxxxxxx_add_isgroup_to_profiles.rb


class AddIsgroupToProfiles < ActiveRecord::Migration
  def change
    add_column :profiles, :isgroup, :boolean
  end
end

$ DB=postgres rails g migration AddFrontimageToProfiles

class AddFrontimageToProfiles < ActiveRecord::Migration
  def change
    add_column :profiles, :front_image, :string
  end
end

$ DB=postgres bin/rake db:migrate RAILS_ENV=development

$ DB=postgres bin/rake db:migrate:status // Chequear las migraciones realizadas, cuales se levantaron y cuales estan pendientes o fallaron

$ bin/rails db:rollback STEP=X // Para moverse entre los estados de las migraciones donde X es el numero a retroceder

Otros

migrations:

20160304155505_create_poll_text_areas.rb
20160304155931_add_poll_text_area_to_poll.rb
20160308141727_add_poll_to_poll_text_areas.rb

20160406134129_create_poll_text_area_largas.rb
20160406172007_add_poll_text_area_larga_to_poll.rb
20160406172030_add_poll_to_poll_text_area_larga.rb

Desactivar la confirmacion via mail de las cuentas creadas

(app/models/user.rb) // Editar el fichero

devise :confirmable, :token_authenticatable, :database_authenticatable,
:registerable...

Quítale el ":confirmable" de modo que quede así:

devise :token_authenticatable, :database_authenticatable, :registerable....

devise :confirmable, :token_authenticatable, :database_authenticatable,
:registerable...

$ gem uninstall <gem-name> // Desinstalar una gema específica, a veces hay conflictos entre versiones de gemas a usar en el proyecto y las gemas instaladas.

Varios

Desactivar aspectos predeterminados de los usuarios En app/controllers/registrations_controller.rb comentar linea 16

#@user.seed_aspects

Borrar usuario de la db: borrar los registros del usuario en la tabla users y en people, queda guardado registro en diaspora_handle.

redsur/app/assets/templates/profile_header_tpl.jst.hbs // Banner grupo, boton edit_profile...

redsur/app/assets/stylesheets$ vim profile.scss // Estilos del perfil de usuario

diaspora@debian:~/redsur/app/assets/templates$ vim profile_sidebar_tpl.jst.hbs // Bio y demás

diaspora@debian:~/redsur/app/assets/templates$ vim profile_header_tpl.jst.hbs // Baner grupo etc...

/home/diaspora/redsur/app/views/contacts // Plantillas de Contacts

diaspora@debian:~/redsur/app/assets/templates$ vim contact_tpl.jst.hbs // Mis contactos, avatar, boton etc.

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB8 // Clave publica Michal Papis:

diaspora@debian:~/redsur/app/views/streams$ vim main_stream.html.haml // miniaturs de contactos en right section stream.

diaspora@debian:~/redsur/app/assets/templates$ vim stream-faces_tpl.jst.hbs // subcapa usuarios miniaturas stream

profile_sidebar_view.js
stream_faces_view.js
profile_sidebar_tpl.jst.hbs
profile.js
router.js
stream-faces_tpl.jst.hbs

Gema de autenticación

Para el rest se implementará la autenticación con "tokens" mediante la gema (devise_token_auth)

In Gemfile

# Authentication
gem "devise_token_auth"

postrequest.py

#! coding: utf-8
import httplib, urllib
import json

params = json.dumps({"utf8":"✓", "authenticity_token":"", "user":{"email":"dieciocho@quince.org", "username":"dieciocho", "password":"123456", "password_confirmation":"123456"}, "commit":"Sign up","profile":{"first_name":"JorgeJORGE", "last_name":"RedondoREDONDO", "gender":"M", "bio":"Bio de prueba más bio", "searchable":"true", "location":"Mérida", "nsfw":"true", "public_details":"false", "tag_string":"#cría #cultivo", "date":{"year":"1979", "month":"10", "day":"4"}}})

headers = { "Content-Type": "application/json", "Accept": "*/*"}
host = "192.168.12.156"
port = 3000
conn = httplib.HTTPConnection(host,port)
conn.request("POST", "/users", params, headers)
response = conn.getresponse()
print "Response: "
print response.status, response.reason, 
print "Body: " 
print response.read()

conn.close()

Agregando el nuevo campo phone al profile del user

$ DB=postgres rails g migration AddPhoneToProfiles

Editamos el diaspora/db/migrate/20161121193410_add_phone_to_profiles.rb

class AddPhoneToProfiles < ActiveRecord::Migration
  def change
    add_column :profiles, :phone, :string
  end
end

Luego migramos...

$ DB=postgres bin/rake db:migrate RAILS_ENV=development

Chequeamos las migraciones...

$ DB=postgres bin/rake db:migrate:status

Si realizó correctamente la migración nos mostrará...

   .
   .
   .
   up     20160307142216  Cleanup handles
   up     20160327103605  Add author id index to participations
   up     20161121193410  Add phone to profiles

Y en la tabla Profiles de la db debe aparecer el campo:

phone | character varying