integración con tienda
This commit is contained in:
parent
59a6b94f5e
commit
e4e8508e57
9 changed files with 66 additions and 0 deletions
|
@ -20,3 +20,5 @@ DEBUG_FORMS=
|
|||
# Duración de la Cookie de invitade
|
||||
# @see Api::V1::ProtectedController
|
||||
COOKIE_DURATION=30
|
||||
# Dominio de la tienda
|
||||
TIENDA=tienda.sutty.local
|
||||
|
|
|
@ -137,6 +137,7 @@ class SitesController < ApplicationController
|
|||
params.require(:site)
|
||||
.permit(:name, :design_id, :licencia_id, :description, :title,
|
||||
:colaboracion_anonima, :contact, :acepta_invitades,
|
||||
:tienda_api_key, :tienda_url,
|
||||
deploys_attributes: %i[type id _destroy])
|
||||
end
|
||||
end
|
||||
|
|
23
app/models/concerns/tienda.rb
Normal file
23
app/models/concerns/tienda.rb
Normal file
|
@ -0,0 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# Integración con la tienda
|
||||
module Tienda
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
encrypts :tienda_api_key
|
||||
|
||||
def tienda?
|
||||
tienda_api_key.present? && tienda_url.present?
|
||||
end
|
||||
|
||||
# Sugerir una dirección al configurar por primera vez
|
||||
def tienda_url
|
||||
t = read_attribute(:tienda_url)
|
||||
|
||||
return t if new_record?
|
||||
|
||||
t.blank? ? 'https://' + name + '.' + ENV.fetch('TIENDA', 'tienda.sutty.nl') : t
|
||||
end
|
||||
end
|
||||
end
|
|
@ -57,6 +57,8 @@ class DeployLocal < Deploy
|
|||
{
|
||||
'HOME' => home_dir,
|
||||
'PATH' => paths.join(':'),
|
||||
'SPREE_API_KEY' => site.tienda_api_key,
|
||||
'SPREE_URL' => site.tienda_url,
|
||||
'JEKYLL_ENV' => Rails.env,
|
||||
'LANG' => ENV['LANG']
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ class Site < ApplicationRecord
|
|||
include FriendlyId
|
||||
include Site::Forms
|
||||
include Site::FindAndReplace
|
||||
include Tienda
|
||||
|
||||
# Cifrar la llave privada que cifra y decifra campos ocultos. Sutty
|
||||
# tiene acceso pero los datos se guardan cifrados en el sitio. Esto
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
|
||||
- if current_usuarie
|
||||
%ul.navbar-nav
|
||||
- if @site&.tienda?
|
||||
%li.nav-item
|
||||
= link_to t('.tienda'), @site.tienda_url,
|
||||
role: 'button', class: 'btn'
|
||||
|
||||
%li.nav-item
|
||||
= link_to t('.logout'), destroy_usuarie_session_path,
|
||||
method: :delete, role: 'button', class: 'btn'
|
||||
|
|
|
@ -104,6 +104,26 @@
|
|||
|
||||
%hr/
|
||||
|
||||
.form-group#tienda
|
||||
%h2= t('.tienda.title')
|
||||
%p.lead
|
||||
- if site.tienda?
|
||||
= t('.tienda.help')
|
||||
- else
|
||||
= t('.tienda.first_time_html')
|
||||
|
||||
.row
|
||||
.col
|
||||
.form-group
|
||||
= f.label :tienda_url
|
||||
= f.url_field :tienda_url, class: 'form-control'
|
||||
.col
|
||||
.form-group
|
||||
= f.label :tienda_api_key
|
||||
= f.text_field :tienda_api_key, class: 'form-control'
|
||||
|
||||
%hr/
|
||||
|
||||
- if site.persisted?
|
||||
.form-group#contact
|
||||
%h2= t('.contact.title')
|
||||
|
|
|
@ -126,6 +126,8 @@ es:
|
|||
acepta_invitades: Habilitar colaboración de otres usuaries
|
||||
colaboracion_anonima: Habilitar colaboración anónima
|
||||
contact: Habilitar formularios de contacto
|
||||
tienda_url: Dirección de la tienda
|
||||
tienda_api_key: Clave de acceso
|
||||
errors:
|
||||
models:
|
||||
site:
|
||||
|
@ -418,6 +420,10 @@ es:
|
|||
contact:
|
||||
title: 'Habilitar formularios de contacto'
|
||||
help: 'Si tu sitio tiene formularios de contacto, con esta opción habilitas su funcionamiento. Si tu sitio está bajo ataque de spam o trolls, puedes deshabilitarlos temporalmente aquí.'
|
||||
tienda:
|
||||
title: Tienda
|
||||
first_time_html: 'Para configurar tu tienda, <a href="https://sutty.nl/#contacto">ponte en contacto con nosotres</a> :)'
|
||||
help: 'Puedes configurar tu tienda aquí.'
|
||||
fetch:
|
||||
title: 'Actualizar el sitio'
|
||||
help:
|
||||
|
|
6
db/migrate/20201111203031_add_tienda_to_site.rb
Normal file
6
db/migrate/20201111203031_add_tienda_to_site.rb
Normal file
|
@ -0,0 +1,6 @@
|
|||
class AddTiendaToSite < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
add_column :sites, :tienda_api_key_ciphertext, :string, default: ''
|
||||
add_column :sites, :tienda_url, :string, default: ''
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue