Permalink
Browse files

Merge branch 'develop' of github.com:danielweinmann/catarse into develop

  • Loading branch information...
2 parents ec64bf3 + 606d0eb commit 7f966530ff50461fee0aafc35d138759ec8c5711 @devton devton committed Apr 24, 2012
Showing with 205 additions and 411 deletions.
  1. +1 −0 Gemfile
  2. +3 −0 Gemfile.lock
  3. +0 −24 app/controllers/posts_controller.rb
  4. +1 −0 app/controllers/projects_controller.rb
  5. +0 −7 app/controllers/users_controller.rb
  6. +0 −72 app/models/post.rb
  7. +0 −6 app/models/project.rb
  8. +5 −0 app/models/update.rb
  9. +5 −0 app/stylesheets/redesign/resources/backers/_new.sass
  10. +4 −0 app/stylesheets/redesign/resources/projects/_show.sass
  11. +1 −1 app/views/layouts/application.html.slim
  12. +4 −4 app/views/projects/faq.en.html.haml
  13. +2 −115 app/views/projects/show.html.slim
  14. +1 −1 app/views/static/_guidelines_text.pt.html.haml
  15. +4 −4 app/views/static/faq.pt.html.haml
  16. +3 −1 app/views/static/guidelines.html.haml
  17. +1 −1 app/views/static/privacy.pt.html.haml
  18. +1 −1 app/views/static/terms.pt.html.haml
  19. +2 −0 app/views/users/_back.html.slim
  20. +0 −54 app/views/users/show.html.slim
  21. +18 −0 db/migrate/20120424151825_create_updates.rb
  22. +13 −0 db/migrate/20120424152539_migrate_comments_to_updates.rb
  23. +1 −2 public/javascripts/app/loader.js
  24. +1 −1 public/javascripts/app/views/model.js
  25. +7 −0 public/javascripts/app/views/projects/backers/new.js
  26. +7 −1 public/javascripts/app/views/static/guidelines.js
  27. +4 −0 public/javascripts/app/views/users/show.js
  28. +63 −44 public/stylesheets/bootstrap.css
  29. +0 −19 spec/controllers/posts_controller_spec.rb
  30. +2 −9 spec/controllers/projects_controller_spec.rb
  31. +27 −20 spec/controllers/users_controller_spec.rb
  32. +8 −0 spec/factories.rb
  33. +0 −14 spec/models/post_spec.rb
  34. +1 −10 spec/models/project_spec.rb
  35. +15 −0 spec/models/update_spec.rb
View
@@ -73,3 +73,4 @@ end
# Putting pg to the end because of a weird bug with Lion, pg and openssl
gem 'pg'
+gem 'foreigner'
View
@@ -126,6 +126,8 @@ GEM
net-ssh (>= 2.1.4)
nokogiri (>= 1.4.4)
ruby-hmac
+ foreigner (1.1.6)
+ activerecord (>= 3.0.0)
formatador (0.2.1)
formtastic (2.0.2)
rails (~> 3.0)
@@ -352,6 +354,7 @@ DEPENDENCIES
enumerate_it
factory_girl_rails (= 1.7.0)
fog
+ foreigner
formtastic
haml
has_vimeo_video (>= 0.0.3)
@@ -1,24 +0,0 @@
-# coding: utf-8
-class PostsController < ApplicationController
-
- inherit_resources
- actions :index, :create
- respond_to :html, :only => [:create]
- respond_to :json, :only => [:index]
-
- def index
- type = params[:search][:type] if params[:search] and params[:search][:type]
- @posts = Post.all(page: params[:page], type: type)
- respond_with(@posts)
- end
-
- def create
- create! do
- flash[:success] = t('posts.create.success')
- # Expire the project's blog
- expire_fragment(controller: "projects", action: "show", action_suffix: "updates_#{@post.project.id}")
- return redirect_to controller: :projects, action: :show, id: @post.project.to_param, anchor: 'updates'
- end
- end
-
-end
@@ -45,6 +45,7 @@ def index
end
def start
+ return unless require_login
@title = t('projects.start.title')
end
@@ -12,13 +12,6 @@ def show
fb_admins_add(@user.facebook_id) if @user.facebook_id
@title = "#{@user.display_name}"
@credits = @user.backs.can_refund.within_refund_deadline.all
-
- # @backs = @user.backs.confirmed.order(:confirmed_at)
- # @backs = @backs.not_anonymous unless @user == current_user or (current_user and current_user.admin)
- # @backs = @backs.all
- # @projects = @user.projects.order("updated_at DESC")
- # @projects = @projects.visible unless @user == current_user
- # @projects = @projects.all
}
end
View
@@ -1,72 +0,0 @@
-# coding: utf-8
-
-class Post
-
- attr_accessor :id, :title, :body, :project_id, :curated_page_id
- attr_reader :project
- attr_reader :curated_page
- include ActiveModel::Conversion
- extend ActiveModel::Naming
- include ActiveModel::AttributeMethods
- include AutoHtml
-
- def persisted?
- false
- end
-
- def initialize params
- @title, @body, @project_id, @curated_page_id = [params[:title], params[:body], params[:project_id], params[:curated_page_id]]
- @project = Project.find(@project_id) if @project_id
- @curated_page = CuratedPage.find(@curated_page_id) if @curated_page_id
- end
-
- def save
- @body = auto_html(@body) do
- html_escape :map => {
- '&' => '&amp;',
- '>' => '&gt;',
- '<' => '&lt;',
- '"' => '"' }
- redcloth :target => :_blank
- image
- youtube :width => 560, :height => 365
- vimeo :width => 560, :height => 365
- link :target => :_blank
- end
- if @project
- tags = "project_post,project_#{@project.id}"
- elsif @curated_page
- tags = "curated_page_post,curated_page_#{@curated_page.id}"
- end
- @id = Tumblr::Post.create(TumblrUser, group: Configuration[:tumblr_blog], title: @title, body: @body, tags: tags).body
- end
-
- def self.all(options = {})
- project = options[:project]
- curated_page = options[:curated_page]
- type = (options[:type] || :platform).to_sym
- per_page = (options[:per_page] || 4).to_i
- page = (options[:page] || 1).to_i
- start = (page-1) * per_page
- params = {start: start, num: per_page, type: :text}
- if project
- type = :project
- params[:tagged] = "project_#{project.id}"
- elsif curated_page
- type = :curated_page
- params[:tagged] = "curated_page_#{curated_page.id}"
- elsif type == :projects
- params[:tagged] = "project_post"
- elsif type == :curated_pages
- params[:tagged] = "curated_page_post"
- end
- posts = Tumblr::Post.all(params).delete_if(&:nil?) || [] rescue []
- if type == :platform
- posts = posts.delete_if do |post|
- post["tag"].include?("project_post") || post["tag"].include?("curated_page_post") rescue false
- end
- end
- posts
- end
-
-end
@@ -203,10 +203,4 @@ def as_json(options={})
}
end
- def posts
- @posts ||= Post.all(project: self)
- rescue
- []
- end
-
end
@@ -0,0 +1,5 @@
+class Update < ActiveRecord::Base
+ belongs_to :user
+ belongs_to :project
+ validates_presence_of :user_id, :project_id, :comment, :comment_html
+end
@@ -125,6 +125,11 @@ body[data-controller="backers"][data-namespace="projects"][data-action="new"]
font-size: 16px
padding-bottom: 8px
color: rgba(black, 0.8)
+ text-decoration: none
+ cursor: pointer
+ @include transition(all, 0.5s)
+ &:hover
+ color: $pink
p
padding-bottom: 30px
font-family: Arial
@@ -87,6 +87,10 @@ body[data-namespace="null"][data-controller="projects"][data-action="show"]
padding-bottom: 20px
p
line-height: 140%
+ margin: 10px 0
+ strong
+ font-weight: bold
+
.midia_content_backers
ul.collection_list
li
@@ -40,7 +40,7 @@ html lang="#{I18n.locale}" xmlns:fb="http://ogp.me/ns/fb#"
li= link_to t('footer.links.faq'), faq_path
li= link_to t('footer.links.terms'), terms_path
li= link_to t('footer.links.policy'), privacy_path
- li= mail_to t('site.email.contact'), t('layouts.footer.email')
+ li= mail_to t('site.email.contact'), t('layouts.footer.email'), :target => :blank
.opendata
h3= t('footer.titles.opendata')
@@ -49,7 +49,7 @@
%h3 Então não se trata de investimento?
%p De jeito nenhum! Os criadores dos projetos ficam com 100% da participação e dos direitos autorais de suas ideias.
%h3 Mas, afinal, quem pode ter seu projeto no Catarse?
- %p Aqui a gente está de braços abertos a projetos artísticos – Artes Plásticas, Cinema, Circo, Dança, Filmes, Música, Fotografia, Literatura, Teatro (se a gente esqueceu algo, pode dar um puxão de orelha #{mail_to t('site.email.contact'), 'aqui'}) – e também a projetos criativos e empreendedores que surjam em campos como Arquitetura e Urbanismo, Culinária, Design, Moda, Tecnologia, Jogos, Quadrinhos, Jornalismo, etc.
+ %p Aqui a gente está de braços abertos a projetos artísticos – Artes Plásticas, Cinema, Circo, Dança, Filmes, Música, Fotografia, Literatura, Teatro (se a gente esqueceu algo, pode dar um puxão de orelha #{mail_to t('site.email.contact'), 'aqui', :target => :blank}) – e também a projetos criativos e empreendedores que surjam em campos como Arquitetura e Urbanismo, Culinária, Design, Moda, Tecnologia, Jogos, Quadrinhos, Jornalismo, etc.
%p Se você acha o seu projeto criativo, mas ele não se enquadra em nenhuma das áreas acima, não seja tímido, mande pra gente e conversaremos melhor sobre ele. A gente é apaixonado por novas ideias e adoraríamos conhecer a sua.
%h2 Como a máquina vai rodar?
%h3 Como eu faço para apoiar um projeto?
@@ -133,7 +133,7 @@
%h3 Um projeto pode ser apagado do Catarse?
%p Se ele já tiver sido lançado ao público, não. Mesmo se ele não for financiado, ele continuará no site, por uma questão de transparência.
%h3 Posso cancelar meu projeto?
- %p Pode. Para isso você terá que enviar um email para #{mail_to t('site.email.contact')}. Precisaremos também de uma explicação (que faça sentido) sobre os motivos que te levaram a essa decisão para enviarmos a todos que já contribuíram com seu projeto. Nesse caso, seu projeto aparecerá com uma faixa de proejto “não financiado”, ok?
+ %p Pode. Para isso você terá que enviar um email para #{mail_to t('site.email.contact'), :target => :blank}. Precisaremos também de uma explicação (que faça sentido) sobre os motivos que te levaram a essa decisão para enviarmos a todos que já contribuíram com seu projeto. Nesse caso, seu projeto aparecerá com uma faixa de proejto “não financiado”, ok?
%h2 Projetos encerrados terão uma segunda chance!
%p Catarse, desde o início, adotou o modelo “tudo ou nada”. Ou o projeto alcança a meta de financiamento e recebe a grana, ou não alcança e os recursos voltam para os apoiadores. E nada mudou nesse sentido. Desde que lançamos não abrimos mão desta regra, apesar da enorme vontade de ver todos os projetos realizados. E influenciados por esse mesmo desejo, resolvemos pensar na possibilidade de projetos encerrados terem uma segunda chance.
@@ -181,7 +181,7 @@
%h3 E tem uma página no Facebook?
%p Tem também. Veja #{link_to 'aqui', t('site.facebook'), :target => :_blank}.
%h3 Tem algum lugar que eu posso requisitar novas funcionalidades?
- %p Lógico. É só clicar no botão de "Sugestões" logo ali à sua esquerda, ou mandar um email para #{mail_to t('site.email.contact')}.
+ %p Lógico. É só clicar no botão de "Sugestões" logo ali à sua esquerda, ou mandar um email para #{mail_to t('site.email.contact'), :target => :blank}.
%h3 Tenho uma pergunta que não foi respondida por aqui, tem algum jeito de eu entrar em contato com vocês?
- %p Claro. Pode entrar em contato com nosso time de atendimento #{mail_to t('site.email.contact'), 'aqui'}.
+ %p Claro. Pode entrar em contato com nosso time de atendimento #{mail_to t('site.email.contact'), 'aqui', :target => :blank}.
.clearfix
@@ -26,7 +26,7 @@
= t('.menu.about')
= link_to '#updates', :id => 'updates_link' do
= t('.menu.updates')
- span.count=" (#{@project.posts.count})"
+ /span.count=" (#{@project.posts.count})"
= link_to '#backers', :id => 'backers_link' do
= t('.menu.backers')
span.count=" (#{@project.total_backers})"
@@ -38,7 +38,7 @@
.main
#project_content
#project_updates.content.hide
- = render :partial => 'updates'
+ /= render :partial => 'updates'
.midia_content_backers
#project_backers.content.hide
#project_comments.content.hide= render :partial => 'comments'
@@ -139,116 +139,3 @@
.clearfix
= render 'show_embed'
-/ .midia
-/ .video
-/ iframe src="#{@project.vimeo.embed_url}?title=0&amp;byline=0&amp;portrait=0&amp" width="640" height="430" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
-/ .social
-/ #project_share
-/ #facebook_share= render 'facebook'
-/ #twitter_share= render 'twitter'
-/ ul
-/ li.link
-/ = image_tag "link_share.png", :title => t('.share.link_title')
-/ = t('.share.link')
-/ = text_field_tag "project_link", @project.short_url
-/ li.embed
-/ = link_to '#embed', :id => 'embed_link' do
-/ = image_tag "embed_share.png", :title => t('.share.embed_title')
-/ = t('.share.embed')
-/ .clear
-/ .tabs
-/ nav#project_menu
-/ = link_to '#about', :id => 'about_link' do
-/ = t('.menu.about')
-/ = link_to '#updates', :id => 'updates_link' do
-/ = t('.menu.updates')
-/ span.count=" (#{@project.posts.count})"
-/ = link_to '#backers', :id => 'backers_link' do
-/ = t('.menu.backers')
-/ span.count=" (#{@project.total_backers})"
-/ = link_to '#comments', :id => 'comments_link' do
-/ = t('.menu.comments')
-/ | &nbsp; ( &nbsp;
-/ fb:comments-count href="#{request.url}"
-/ | &nbsp; )
-/ #project_content
-/ #project_about.content
-/ .midia_content_home
-/ p
-/ - if current_user and current_user.admin
-/ | #{on_the_spot_edit @project, :about, :type => :textarea}
-/ - else
-/ = @project.about_html.html_safe
-/ = render "admin_fields" if current_user and current_user.admin
-/ #project_updates.content= render :partial => 'updates'
-/ .midia_content_backers
-/ #project_backers.content
-/ #project_comments.content= render :partial => 'comments'
-/ #loading= image_tag "loading.gif"
-/
-/ .info
-/ #statistics
-/ .statistics
-/ .iten
-/ p= @project.total_backers
-/ em apoiadores
-/ .iten
-/ p= @project.display_pledged
-/ em atingidos de #{@project.display_goal}
-/ .iten
-/ p= @project.time_to_go[:time]
-/ em #{@project.time_to_go[:unit].capitalize} #{pluralize_without_number(@project.time_to_go[:time], t('remaining_singular'), t('remaining_plural'))}
-/
-/ #condition
-/ p
-/ - if @project.successful?
-/ - if @project.expired?
-/ = t('projects.back_project.project_warning.successful.expired', :date => @project.display_expires_at)
-/ - else
-/ = t('projects.back_project.project_warning.successful.not_expired', :date => @project.display_expires_at)
-/ - elsif @project.waiting_confirmation?
-/ = t('projects.back_project.project_warning.waiting_confirmation')
-/ - else
-/ - if @project.expired?
-/ = t('projects.back_project.project_warning.not_successful.expired', :goal => @project.display_goal, :date => @project.display_expires_at)
-/ - else
-/ = t('projects.back_project.project_warning.not_successful.not_expired', :goal => @project.display_goal, :date => @project.display_expires_at)
-/
-/ #pledge
-/ = form_tag(new_project_backer_path(@project), :method => :get, :id => 'back_project_form') do
-/ fieldset
-/ = submit_tag t('projects.back_project.submit'), :disabled => (not @project.can_back?)
-/
-/ #rewards
-/ - @rewards.each do |reward|
-/ div[class="box #{('clickable' if @project.can_back? and not reward.sold_out?)}"]
-/ = hidden_field_tag 'url', "#{new_project_backer_path(@project)}/?reward_id=#{reward.id}"
-/ h2= t('projects.rewards.reward_title', :minimum => reward.display_minimum)
-/ - if reward.maximum_backers
-/ .maximum_backers
-/ - if reward.sold_out?
-/ .sold_out= t('reward.sold_out')
-/ - else
-/ .limited= t('reward.limited')
-/ .remaining= reward.display_remaining
-/ .clear
-/ p
-/ - if current_user and current_user.admin
-/ #{on_the_spot_edit reward, :description, :type => :textarea}
-/ - else
-/ = auto_link(reward.description, :html => {:target => :_blank})
-/ em= pluralize(reward.backers.confirmed.count, t('backer_singular'), t('backer_plural'))
-/
-/ #creator_profile
-/ h3= t('project_by')
-/ .avatar= image_tag @project.user.display_image, :width => '100px', :heigth => '100px'
-/ .personal_info
-/ p
-/ = link_to @project.user.display_name, user_path(@project.user)
-/ #city
-/ p
-/ | de #{@project.user.address_city}, apoiou
-/ span= " #{@project.user.total_backs}"
-/ | projetos
-/ #bio
-/ p= @project.user.bio
@@ -14,4 +14,4 @@
%p
%strong Todos os projetos tem que oferecer recompensas.
O Catarse é uma forma de comércio e mecenato. Se você não acha que as recompensas são parte fundamental do seu projeto, talvez o Catarse não seja a melhor solução para você. Ah, e lembre-se que rifas, sorteios, retorno financeiro e participação societária são proibidos.
-%p Bem, e qualquer dúvida que você tiver, é só falar com a gente #{mail_to t('site.email.contact'), "por aqui"}.
+%p Bem, e qualquer dúvida que você tiver, é só falar com a gente #{mail_to t('site.email.contact'), "por aqui", :target => :blank}.
@@ -49,7 +49,7 @@
%h3 Então não se trata de investimento?
%p De jeito nenhum! Os criadores dos projetos ficam com 100% da participação e dos direitos autorais de suas ideias.
%h3 Mas, afinal, quem pode ter seu projeto no Catarse?
- %p Aqui a gente está de braços abertos a projetos artísticos – Artes Plásticas, Cinema, Circo, Dança, Filmes, Música, Fotografia, Literatura, Teatro (se a gente esqueceu algo, pode dar um puxão de orelha #{mail_to t('site.email.contact'), 'aqui'}) – e também a projetos criativos e empreendedores que surjam em campos como Arquitetura e Urbanismo, Culinária, Design, Moda, Tecnologia, Jogos, Quadrinhos, Jornalismo, etc.
+ %p Aqui a gente está de braços abertos a projetos artísticos – Artes Plásticas, Cinema, Circo, Dança, Filmes, Música, Fotografia, Literatura, Teatro (se a gente esqueceu algo, pode dar um puxão de orelha #{mail_to t('site.email.contact'), 'aqui', :target => :blank}) – e também a projetos criativos e empreendedores que surjam em campos como Arquitetura e Urbanismo, Culinária, Design, Moda, Tecnologia, Jogos, Quadrinhos, Jornalismo, etc.
%p Se você acha o seu projeto criativo, mas ele não se enquadra em nenhuma das áreas acima, não seja tímido, mande pra gente e conversaremos melhor sobre ele. A gente é apaixonado por novas ideias e adoraríamos conhecer a sua.
%h2 Como a máquina vai rodar?
%h3 Como eu faço para apoiar um projeto?
@@ -133,7 +133,7 @@
%h3 Um projeto pode ser apagado do Catarse?
%p Se ele já tiver sido lançado ao público, não. Mesmo se ele não for financiado, ele continuará no site, por uma questão de transparência.
%h3 Posso cancelar meu projeto?
- %p Pode. Para isso você terá que enviar um email para #{mail_to t('site.email.contact')}. Precisaremos também de uma explicação (que faça sentido) sobre os motivos que te levaram a essa decisão para enviarmos a todos que já contribuíram com seu projeto. Nesse caso, seu projeto aparecerá com uma faixa de proejto “não financiado”, ok?
+ %p Pode. Para isso você terá que enviar um email para #{mail_to t('site.email.contact'), :target => :blank}. Precisaremos também de uma explicação (que faça sentido) sobre os motivos que te levaram a essa decisão para enviarmos a todos que já contribuíram com seu projeto. Nesse caso, seu projeto aparecerá com uma faixa de proejto “não financiado”, ok?
%h2 Projetos encerrados terão uma segunda chance!
%p Catarse, desde o início, adotou o modelo “tudo ou nada”. Ou o projeto alcança a meta de financiamento e recebe a grana, ou não alcança e os recursos voltam para os apoiadores. E nada mudou nesse sentido. Desde que lançamos não abrimos mão desta regra, apesar da enorme vontade de ver todos os projetos realizados. E influenciados por esse mesmo desejo, resolvemos pensar na possibilidade de projetos encerrados terem uma segunda chance.
@@ -181,7 +181,7 @@
%h3 E tem uma página no Facebook?
%p Tem também. Veja #{link_to 'aqui', t('site.facebook'), :target => :_blank}.
%h3 Tem algum lugar que eu posso requisitar novas funcionalidades?
- %p Lógico. É só clicar no botão de "Sugestões" logo ali à sua esquerda, ou mandar um email para #{mail_to t('site.email.contact')}.
+ %p Lógico. É só clicar no botão de "Sugestões" logo ali à sua esquerda, ou mandar um email para #{mail_to t('site.email.contact'), :target => :blank}.
%h3 Tenho uma pergunta que não foi respondida por aqui, tem algum jeito de eu entrar em contato com vocês?
- %p Claro. Pode entrar em contato com nosso time de atendimento #{mail_to t('site.email.contact'), 'aqui'}.
+ %p Claro. Pode entrar em contato com nosso time de atendimento #{mail_to t('site.email.contact'), 'aqui', :target => :blank}.
.clearfix
Oops, something went wrong.

0 comments on commit 7f96653

Please sign in to comment.