diff --git a/.tx/photographerio.enyml-5/es_translation b/.tx/photographerio.enyml-5/es_translation index e2cf0ee9..ead87266 100644 --- a/.tx/photographerio.enyml-5/es_translation +++ b/.tx/photographerio.enyml-5/es_translation @@ -2,11 +2,6 @@ es: site_name: "Photographer.io" default_title: "La comunidad fotográfica para entusiastas - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Todas las fotografías tienen derechos de autor de sus respectivos creadores, y - no pueden reproducirse o republicarse sin permiso. - - © Photographer.io, Afternoon Robot Ltd, 2013. Iconos cortesía de glyphicons.com. privacy: "Política de privacidad" terms: "Términos" confirm_delete: "¿Está seguro?" diff --git a/.tx/photographerio.enyml-5/fr_translation b/.tx/photographerio.enyml-5/fr_translation index 76a2ec0b..5d4743e8 100644 --- a/.tx/photographerio.enyml-5/fr_translation +++ b/.tx/photographerio.enyml-5/fr_translation @@ -2,12 +2,6 @@ fr: site_name: "Photographer.io" default_title: "La communauté photo pour les passionnés - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Toutes les photographies sont la propriété de leurs auteurs respectifs et ne peuvent - être republiés sans autorisation. - - © Photographer.io, Afternoon Robot Ltd, 2013. Icones utilisées avec la permission - de glyphicons.com. privacy: "Confidentialité" terms: "Conditions d'utilisation" confirm_delete: "Êtes-vous certain ?" @@ -27,7 +21,6 @@ fr: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Anglais" - fr: "Français" nl_NL: "Néerlandais" pl: "Polonais" metadata: @@ -318,8 +311,6 @@ fr: favourites: "Favoris" upload: "Télécharger" delete: "Supprimer cette photo" - dropzone: > - Glissez-déposez vos images sur cette page pour les téléverser. Lisez nos %{guidelines} public_warning: > Cette collection est définie comme publique. Toutes les photos ici seront listées dans la partie publique du site. diff --git a/.tx/photographerio.enyml-5/nl_NL_translation b/.tx/photographerio.enyml-5/nl_NL_translation index 559977ac..07951dbe 100644 --- a/.tx/photographerio.enyml-5/nl_NL_translation +++ b/.tx/photographerio.enyml-5/nl_NL_translation @@ -2,8 +2,15 @@ nl_NL: site_name: "Photographer.io" default_title: "De foto's gemeenschap voor liefhebbers - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: "Op alle foto's berust het auteursrecht van de desbetreffende maker, en mag niet zonder toestemming heruitgegeven worden, gekopieerd, of vermenigvuldigd op welke wijze dan ook.\n © Photographer.io, Afternoon Robot Ltd, 2013. Pictogrammen geleverd door glyphicons.com. \n" + copyright: > + Copyright op alle werken berust bij de respectievelijke fotografen, en mogen niet + zonder toestemming worden gereproduceerd. + + © Photographer.io, Afternoon Robot Ltd, 2013. Met dank aan glyphicons.com + voor de iconen. + + Aangedreven door + Digital Ocean servers. privacy: "Privacybeleid" terms: "Algemene voorwaarden" confirm_delete: "Weet je het zeker?" @@ -23,9 +30,12 @@ nl_NL: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Engels" - fr: "Frans" + es: "Español *" + fr: "Français *" nl_NL: "Nederlands" pl: "Pools" + pt_PT: "Português (Portugal) *" + pt_BR: "Português (Brasil) *" ru_RU: "Russisch" metadata: description: > @@ -209,6 +219,11 @@ nl_NL: blurb: > Als lid kun je je foto's uploaden en organiseren voordat je ze publiceert op de publiek toegankelijke site. + notifications: + title: "Activiteit" + empty: > + Activiteit en meldingen zullen hier weergegeven worden, maar momenteel heb + je nog niets ontvangen! statistics: title: "Statistieken" views: "Totaal aantal keer dat je foto's bekeken zijn" @@ -390,6 +405,8 @@ nl_NL: destroy: succeeded: "Je volgt deze gebruiker niet meer." failed: "Er ging wat mis met het verwijderen van deze gebruiker uit de volgers lijst." + notifications: + subject: "%{user} volgt je nu" notifications: title: "Berichten" none: "Je hebt momenteel geen berichten." @@ -526,3 +543,5 @@ nl_NL: failed: > Er heeft zich een probleem voorgedaan bij het aanmaken van het rapport. Kijk hieronder voor eventuele foutmeldingen. + stories: + notification: "%{text}" diff --git a/.tx/photographerio.enyml-5/pl_translation b/.tx/photographerio.enyml-5/pl_translation index b9b54e2d..4ee4465c 100644 --- a/.tx/photographerio.enyml-5/pl_translation +++ b/.tx/photographerio.enyml-5/pl_translation @@ -7,6 +7,9 @@ pl: publikować bez zgody właścicieli. © Photographer.io, Afternoon Robot Ltd, 2013. Ikony z serwisu glyphicons.com. + + Usługa działa na serwerach firmy Digital + Ocean. privacy: "Polityka prywatności" terms: "Zasady korzystania" confirm_delete: "Jesteś pewien?" @@ -26,9 +29,12 @@ pl: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "angielski" - fr: "francuski" + es: "hiszpański *" + fr: "francuski *" nl_NL: "holenderski" pl: "polski" + pt_PT: "portugalski (Portugalia) *" + pt_BR: "portugalski (Brazylia) *" ru_RU: "rosyjski" metadata: description: > @@ -236,6 +242,11 @@ pl: blurb: > Jako członek serwisu możesz wysyłać i organizować swoje zdjęcia przed ich publikacją na profilu publicznym. + notifications: + title: "Aktywność" + empty: > + Z czasem pojawi się tu lista aktywności i powiadomień, ale w tej chwili + nie masz jeszcze żadnych! statistics: title: "Statystyki" views: "Liczba wszystkich odsłon twoich zdjęć" @@ -315,8 +326,8 @@ pl: upload: "Wyślij" delete: "Usuń to zdjęcie" dropzone: > - Przeciągnij i upuść swoje zdjęcia na tę stronę aby je wysłać. Przeczytaj więcej - w %{guidelines}. + Możesz wysyłać zdjęcia przeciągając je i upuszczając na tę stronę. Przeczytaj + %{guidelines} . public_warning: > Ta kolekcja jest oznaczona jako publiczna. Wszystkie umieszczone w niej zdjęcia będą widoczne w profilu publicznym. @@ -412,6 +423,8 @@ pl: destroy: succeeded: "Śledzenie tego użytkownika zakończone." failed: "Wystąpił problem z zakończeniem śledzenia tego użytkownika." + notifications: + subject: "Użytkownik %{user} zaczął cię obserwować" notifications: title: "Powiadomienia" none: "W tej chwili nie masz żadnych powiadomień." @@ -542,3 +555,5 @@ pl: Utworzono zgłoszenie. To zdjęcie jest teraz ukryte przed publicznym przeglądaniem. failed: > Wystąpił problem ze zgłoszeniem. Opis błędów znajduje się poniżej. + stories: + notification: "%{text}" diff --git a/.tx/photographerio.enyml-5/pt_PT_translation b/.tx/photographerio.enyml-5/pt_PT_translation index 4721f9bd..c2882f63 100644 --- a/.tx/photographerio.enyml-5/pt_PT_translation +++ b/.tx/photographerio.enyml-5/pt_PT_translation @@ -7,6 +7,9 @@ pt_PT: ser republicadas sem permissão. © Photographer.io, Afternoon Robot Ltd, 2013. Icons cortesia de glyphicons.com. + + Suportado por servidores + Digital Ocean. privacy: "Política de Privacidade" terms: "Termos" confirm_delete: "Tem certeza?" @@ -26,9 +29,12 @@ pt_PT: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Inglês" - fr: "Francês" + es: "Espanhol *" + fr: "Francês *" nl_NL: "Holandês" pl: "Polaco" + pt_PT: "Português (Portugal) *" + pt_BR: "Português (Brasil) *" ru_RU: "Russo" metadata: description: > @@ -233,6 +239,11 @@ pt_PT: blurb: > Como um membro pode carregar e organizar as suas fotografias antes de publicar-las na página pública. + notifications: + title: "Atividade" + empty: > + As atividades e notificações vão aparecer nesta zona com o tempo, mas de + momento não recebeu nenhuma! statistics: title: "Estatísticas" views: "Número total de vistas para as suas fotografias" @@ -312,8 +323,8 @@ pt_PT: upload: "Carregar" delete: "Apagar esta fotografia" dropzone: > - Arraste e largue as suas imagens nesta página para carregar-las. Leia nas - nossas %{guidelines}. + Pode arrastar e largar as suas imagens nesta página para carregar-las. Leia + nas nossas %{guidelines}. public_warning: > Esta coleção é definida como pública. Qualquer foto aqui será listada na página pública. @@ -417,6 +428,8 @@ pt_PT: destroy: succeeded: "Já não está a seguir o utilizador." failed: "Ocorreu um erro ao remover o utilizador da lista dos seus seguidores." + notifications: + subject: "%{user} está agora a segui-lo" notifications: title: "Notificações" none: "De momento não tem notificações." @@ -587,3 +600,5 @@ pt_PT: Relatório criado. Esta foto está agora escondida da navegação pública. failed: > Ocorreu um problema enquanto a criação do relatório. Verifique por erros abaixo. + stories: + notification: "%{text}" diff --git a/.tx/photographerio.enyml-5/ru_RU_translation b/.tx/photographerio.enyml-5/ru_RU_translation index b4af317d..a1006397 100644 --- a/.tx/photographerio.enyml-5/ru_RU_translation +++ b/.tx/photographerio.enyml-5/ru_RU_translation @@ -2,11 +2,6 @@ ru_RU: site_name: "Photographer.io" default_title: "Фото-сообщество для энтузиастов - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Все фотографии принадлежат их уважаемым создателям и не должны быть опубликованы - в других местах без их разрешения. - - © Photographer.io, Afternoon Robot Ltd, 2013. Иконки созданы glyphicons.com. privacy: "Политика конфиденциальности" terms: "Правила" confirm_delete: "Вы уверены?" @@ -26,7 +21,6 @@ ru_RU: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "English" - fr: "Français" nl_NL: "Nederlands" pl: "Polski" ru_RU: "Русский" @@ -309,9 +303,6 @@ ru_RU: favourites: "Избранное" upload: "Загрузка" delete: "Удалить фотографию" - dropzone: > - Чтобы загрузить изображение, перетащие его на эту страницу. О параметрах загружаемых - изображений можно узнать %{guidelines}. public_warning: > Это открытая коллекция. Все изображения, содержащиеся в ней, будут видны остальным посетителям сайта. diff --git a/Gemfile.lock b/Gemfile.lock index 8fac507e..1b090f0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - celluloid (0.15.1) + celluloid (0.15.2) timers (~> 1.1.0) childprocess (0.3.9) ffi (~> 1.0, >= 1.0.11) @@ -206,7 +206,7 @@ GEM jquery-turbolinks (1.0.0) railties (>= 3.1.0) turbolinks - json (1.8.0) + json (1.8.1) jwt (0.1.8) multi_json (>= 1.5) kaminari (0.14.1) diff --git a/Procfile b/Procfile index ddb29adb..66554205 100644 --- a/Procfile +++ b/Procfile @@ -1,2 +1,2 @@ web: bundle exec puma -p 5000 -worker: bundle exec sidekiq -q events,3 -q mailer,3 -q sunspot,2 -q photos,2 -q default,1 -q low,1 +worker: bundle exec sidekiq diff --git a/app/models/user.rb b/app/models/user.rb index 1338492b..4fbacd32 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -168,9 +168,15 @@ def unread_notifications def profile_background_photo if show_profile_background id = profile_background_photo_id - if id.present? - photographs.find(id) - else + + # Exception will also be raised if background id is for missing photo + begin + if id.present? + photographs.find(id) + else + raise ActiveRecord::RecordNotFound + end + rescue ActiveRecord::RecordNotFound photographs.visible.order("RANDOM()").first end end diff --git a/config/locales/es.yml b/config/locales/es.yml index e2cf0ee9..ead87266 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -2,11 +2,6 @@ es: site_name: "Photographer.io" default_title: "La comunidad fotográfica para entusiastas - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Todas las fotografías tienen derechos de autor de sus respectivos creadores, y - no pueden reproducirse o republicarse sin permiso. - - © Photographer.io, Afternoon Robot Ltd, 2013. Iconos cortesía de glyphicons.com. privacy: "Política de privacidad" terms: "Términos" confirm_delete: "¿Está seguro?" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 76a2ec0b..5d4743e8 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -2,12 +2,6 @@ fr: site_name: "Photographer.io" default_title: "La communauté photo pour les passionnés - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Toutes les photographies sont la propriété de leurs auteurs respectifs et ne peuvent - être republiés sans autorisation. - - © Photographer.io, Afternoon Robot Ltd, 2013. Icones utilisées avec la permission - de glyphicons.com. privacy: "Confidentialité" terms: "Conditions d'utilisation" confirm_delete: "Êtes-vous certain ?" @@ -27,7 +21,6 @@ fr: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Anglais" - fr: "Français" nl_NL: "Néerlandais" pl: "Polonais" metadata: @@ -318,8 +311,6 @@ fr: favourites: "Favoris" upload: "Télécharger" delete: "Supprimer cette photo" - dropzone: > - Glissez-déposez vos images sur cette page pour les téléverser. Lisez nos %{guidelines} public_warning: > Cette collection est définie comme publique. Toutes les photos ici seront listées dans la partie publique du site. diff --git a/config/locales/nl_NL.yml b/config/locales/nl_NL.yml index 559977ac..07951dbe 100644 --- a/config/locales/nl_NL.yml +++ b/config/locales/nl_NL.yml @@ -2,8 +2,15 @@ nl_NL: site_name: "Photographer.io" default_title: "De foto's gemeenschap voor liefhebbers - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: "Op alle foto's berust het auteursrecht van de desbetreffende maker, en mag niet zonder toestemming heruitgegeven worden, gekopieerd, of vermenigvuldigd op welke wijze dan ook.\n © Photographer.io, Afternoon Robot Ltd, 2013. Pictogrammen geleverd door glyphicons.com. \n" + copyright: > + Copyright op alle werken berust bij de respectievelijke fotografen, en mogen niet + zonder toestemming worden gereproduceerd. + + © Photographer.io, Afternoon Robot Ltd, 2013. Met dank aan glyphicons.com + voor de iconen. + + Aangedreven door + Digital Ocean servers. privacy: "Privacybeleid" terms: "Algemene voorwaarden" confirm_delete: "Weet je het zeker?" @@ -23,9 +30,12 @@ nl_NL: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Engels" - fr: "Frans" + es: "Español *" + fr: "Français *" nl_NL: "Nederlands" pl: "Pools" + pt_PT: "Português (Portugal) *" + pt_BR: "Português (Brasil) *" ru_RU: "Russisch" metadata: description: > @@ -209,6 +219,11 @@ nl_NL: blurb: > Als lid kun je je foto's uploaden en organiseren voordat je ze publiceert op de publiek toegankelijke site. + notifications: + title: "Activiteit" + empty: > + Activiteit en meldingen zullen hier weergegeven worden, maar momenteel heb + je nog niets ontvangen! statistics: title: "Statistieken" views: "Totaal aantal keer dat je foto's bekeken zijn" @@ -390,6 +405,8 @@ nl_NL: destroy: succeeded: "Je volgt deze gebruiker niet meer." failed: "Er ging wat mis met het verwijderen van deze gebruiker uit de volgers lijst." + notifications: + subject: "%{user} volgt je nu" notifications: title: "Berichten" none: "Je hebt momenteel geen berichten." @@ -526,3 +543,5 @@ nl_NL: failed: > Er heeft zich een probleem voorgedaan bij het aanmaken van het rapport. Kijk hieronder voor eventuele foutmeldingen. + stories: + notification: "%{text}" diff --git a/config/locales/pl.yml b/config/locales/pl.yml index b9b54e2d..4ee4465c 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -7,6 +7,9 @@ pl: publikować bez zgody właścicieli. © Photographer.io, Afternoon Robot Ltd, 2013. Ikony z serwisu glyphicons.com. + + Usługa działa na serwerach firmy Digital + Ocean. privacy: "Polityka prywatności" terms: "Zasady korzystania" confirm_delete: "Jesteś pewien?" @@ -26,9 +29,12 @@ pl: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "angielski" - fr: "francuski" + es: "hiszpański *" + fr: "francuski *" nl_NL: "holenderski" pl: "polski" + pt_PT: "portugalski (Portugalia) *" + pt_BR: "portugalski (Brazylia) *" ru_RU: "rosyjski" metadata: description: > @@ -236,6 +242,11 @@ pl: blurb: > Jako członek serwisu możesz wysyłać i organizować swoje zdjęcia przed ich publikacją na profilu publicznym. + notifications: + title: "Aktywność" + empty: > + Z czasem pojawi się tu lista aktywności i powiadomień, ale w tej chwili + nie masz jeszcze żadnych! statistics: title: "Statystyki" views: "Liczba wszystkich odsłon twoich zdjęć" @@ -315,8 +326,8 @@ pl: upload: "Wyślij" delete: "Usuń to zdjęcie" dropzone: > - Przeciągnij i upuść swoje zdjęcia na tę stronę aby je wysłać. Przeczytaj więcej - w %{guidelines}. + Możesz wysyłać zdjęcia przeciągając je i upuszczając na tę stronę. Przeczytaj + %{guidelines} . public_warning: > Ta kolekcja jest oznaczona jako publiczna. Wszystkie umieszczone w niej zdjęcia będą widoczne w profilu publicznym. @@ -412,6 +423,8 @@ pl: destroy: succeeded: "Śledzenie tego użytkownika zakończone." failed: "Wystąpił problem z zakończeniem śledzenia tego użytkownika." + notifications: + subject: "Użytkownik %{user} zaczął cię obserwować" notifications: title: "Powiadomienia" none: "W tej chwili nie masz żadnych powiadomień." @@ -542,3 +555,5 @@ pl: Utworzono zgłoszenie. To zdjęcie jest teraz ukryte przed publicznym przeglądaniem. failed: > Wystąpił problem ze zgłoszeniem. Opis błędów znajduje się poniżej. + stories: + notification: "%{text}" diff --git a/config/locales/pt_PT.yml b/config/locales/pt_PT.yml index 4721f9bd..c2882f63 100644 --- a/config/locales/pt_PT.yml +++ b/config/locales/pt_PT.yml @@ -7,6 +7,9 @@ pt_PT: ser republicadas sem permissão. © Photographer.io, Afternoon Robot Ltd, 2013. Icons cortesia de glyphicons.com. + + Suportado por servidores + Digital Ocean. privacy: "Política de Privacidade" terms: "Termos" confirm_delete: "Tem certeza?" @@ -26,9 +29,12 @@ pt_PT: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "Inglês" - fr: "Francês" + es: "Espanhol *" + fr: "Francês *" nl_NL: "Holandês" pl: "Polaco" + pt_PT: "Português (Portugal) *" + pt_BR: "Português (Brasil) *" ru_RU: "Russo" metadata: description: > @@ -233,6 +239,11 @@ pt_PT: blurb: > Como um membro pode carregar e organizar as suas fotografias antes de publicar-las na página pública. + notifications: + title: "Atividade" + empty: > + As atividades e notificações vão aparecer nesta zona com o tempo, mas de + momento não recebeu nenhuma! statistics: title: "Estatísticas" views: "Número total de vistas para as suas fotografias" @@ -312,8 +323,8 @@ pt_PT: upload: "Carregar" delete: "Apagar esta fotografia" dropzone: > - Arraste e largue as suas imagens nesta página para carregar-las. Leia nas - nossas %{guidelines}. + Pode arrastar e largar as suas imagens nesta página para carregar-las. Leia + nas nossas %{guidelines}. public_warning: > Esta coleção é definida como pública. Qualquer foto aqui será listada na página pública. @@ -417,6 +428,8 @@ pt_PT: destroy: succeeded: "Já não está a seguir o utilizador." failed: "Ocorreu um erro ao remover o utilizador da lista dos seus seguidores." + notifications: + subject: "%{user} está agora a segui-lo" notifications: title: "Notificações" none: "De momento não tem notificações." @@ -587,3 +600,5 @@ pt_PT: Relatório criado. Esta foto está agora escondida da navegação pública. failed: > Ocorreu um problema enquanto a criação do relatório. Verifique por erros abaixo. + stories: + notification: "%{text}" diff --git a/config/locales/ru_RU.yml b/config/locales/ru_RU.yml index b4af317d..a1006397 100644 --- a/config/locales/ru_RU.yml +++ b/config/locales/ru_RU.yml @@ -2,11 +2,6 @@ ru_RU: site_name: "Photographer.io" default_title: "Фото-сообщество для энтузиастов - Photographer.io" page_title: "%{title} - Photographer.io" - copyright: > - Все фотографии принадлежат их уважаемым создателям и не должны быть опубликованы - в других местах без их разрешения. - - © Photographer.io, Afternoon Robot Ltd, 2013. Иконки созданы glyphicons.com. privacy: "Политика конфиденциальности" terms: "Правила" confirm_delete: "Вы уверены?" @@ -26,7 +21,6 @@ ru_RU: privacy_policy: "https://www.iubenda.com/privacy-policy/288645" locales: en: "English" - fr: "Français" nl_NL: "Nederlands" pl: "Polski" ru_RU: "Русский" @@ -309,9 +303,6 @@ ru_RU: favourites: "Избранное" upload: "Загрузка" delete: "Удалить фотографию" - dropzone: > - Чтобы загрузить изображение, перетащие его на эту страницу. О параметрах загружаемых - изображений можно узнать %{guidelines}. public_warning: > Это открытая коллекция. Все изображения, содержащиеся в ней, будут видны остальным посетителям сайта. diff --git a/config/sidekiq.yml b/config/sidekiq.yml index 78272f2a..cc02bc09 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -1,6 +1,6 @@ :verbose: false :pidfile: /var/run/app/sidekiq.pid -:concurrency: 25 +:concurrency: 10 :queues: - [events, 3] - [mailer, 3] diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 58e1bf56..082731e3 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -55,6 +55,15 @@ user.profile_background_photo.should eq(photograph) end end + + context "photo is missing" do + before { user.stub_chain(:photographs, :find) { raise ActiveRecord::RecordNotFound } } + before { user.stub_chain(:photographs, :visible, :order, :first) { photograph } } + + it "displays a random photo" do + user.profile_background_photo.should eq(photograph) + end + end end context "don't show profile background" do