Commit 8f6d0355 authored by Jiri Strojil's avatar Jiri Strojil

Merge branch 'chores/remove-old-halfyear-feedback' into 'develop'

Remove Half year mailing

See merge request !912
parents 5c98cf5a 666ebb6c
Pipeline #33611 passed with stage
in 43 minutes and 15 seconds
class ReminderMailingsController < ApplicationController
before_action :set_reminder_mailing, only: [:show, :edit, :update, :destroy, :send_trial_period,
:send_half_year, :send_termination]
before_action :set_reminder_mailing, only: [:show, :edit, :update, :destroy, :send_trial_period, :send_termination]
def index
authorize ReminderMailing
......@@ -27,26 +26,6 @@ class ReminderMailingsController < ApplicationController
authorize @reminder_mailing
end
def new_half_year
@reminder_mailables = Assignment.unterminated
.with_actively_registered_volunteer
.submitted_since(params[:submitted_since]&.to_date)
@reminder_mailables += GroupAssignment.unterminated
.with_actively_registered_volunteer
.submitted_since(params[:submitted_since]&.to_date)
@reminder_mailing = ReminderMailing.new(kind: 'half_year',
reminder_mailing_volunteers: @reminder_mailables)
if EmailTemplate.half_year.active.any?
@reminder_mailing.assign_attributes(EmailTemplate.half_year.active.first
.slice(:subject, :body))
else
redirect_to new_email_template_path,
notice: 'Sie müssen eine aktive E-Mailvorlage haben,
bevor Sie eine Halbjahres Erinnerung erstellen können.'
end
authorize @reminder_mailing
end
def new_termination
@reminder_mailing = ReminderMailing.new(kind: 'termination',
reminder_mailing_volunteers: [find_termination_mailable])
......@@ -91,18 +70,6 @@ class ReminderMailingsController < ApplicationController
redirect_to reminder_mailings_path, notice: 'Probezeit Erinnerungs-Emails werden versendet.'
end
def send_half_year
if @reminder_mailing.sending_triggered?
return redirect_to reminder_mailings_path, notice: 'Dieses Erinnerungs-Mailing wurde bereits'\
' versandt.'
end
@reminder_mailing.reminder_mailing_volunteers.picked.each do |mailing_volunteer|
VolunteerMailer.public_send(@reminder_mailing.kind, mailing_volunteer).deliver_later
end
@reminder_mailing.update(sending_triggered: true)
redirect_to reminder_mailings_path, notice: 'Halbjahres Erinnerungs-Emails werden versendet.'
end
def send_termination
if @reminder_mailing.sending_triggered?
return redirect_to reminder_mailings_path, notice: 'Dieses Beendigungs-Mailing wurde bereits'\
......
......@@ -31,13 +31,6 @@ class VolunteerMailer < ApplicationMailer
mail(to: @volunteer.contact.primary_email, subject: @subject)
end
def half_year(reminder_mailing_volunteer)
@volunteer = reminder_mailing_volunteer.volunteer
@subject, @body = reminder_mailing_volunteer.process_template.values_at(:subject, :body)
reminder_mailing_volunteer.update(email_sent: true)
mail(to: @volunteer.contact.primary_email, subject: @subject)
end
def half_year_process_email(semester_process_mail)
@volunteer = semester_process_mail.volunteer
@subject, @body = semester_process_mail.process_template.values_at(:subject, :body)
......
......@@ -49,10 +49,6 @@ module GroupAssignmentAndAssignmentCommon
loj_mailings.where('reminder_mailings.kind = ?', kind_number)
}
scope :with_half_year_reminder_mailing, lambda {
with_reminder_mailing_kind(0)
}
scope :with_trial_period_reminder_mailing, lambda {
with_reminder_mailing_kind(1)
}
......@@ -64,11 +60,6 @@ module GroupAssignmentAndAssignmentCommon
)
}
scope :no_half_year_reminder_mailing, lambda {
loj_mailings
.where('reminder_mailings.kind != 1 OR reminder_mailing_volunteers.id IS NULL')
}
def submit_feedback=(submitter)
self.submitted_at = Time.zone.now
self.submitted_by = submitter
......
class EmailTemplate < ApplicationRecord
before_save :ensure_exactly_one_active_per_kind
enum kind: { signup: 0, trial: 1, half_year: 3, termination: 2, half_year_process_email: 4, half_year_process_overdue: 5 }
enum kind: { signup: 0, trial: 1, termination: 2, half_year_process_email: 4, half_year_process_overdue: 5 }
validates :kind, presence: true
scope :order_by_active, -> { order(active: :desc) }
......@@ -32,7 +32,6 @@ class EmailTemplate < ApplicationRecord
signup: [],
assignment: [:Anrede, :Name, :EinsatzTitel, :FeedbackLink],
trial: ReminderMailing::TEMPLATE_VARNAMES,
half_year: ReminderMailing::TEMPLATE_VARNAMES,
termination: ReminderMailing::TEMPLATE_VARNAMES,
half_year_process_email: SemesterProcessMail.template_varnames[:mail],
half_year_process_overdue: SemesterProcessMail.template_varnames[:reminder]
......
......@@ -26,7 +26,7 @@ class ReminderMailing < ApplicationRecord
source_type: 'GroupAssignment'
has_many :process_submitters, through: :reminder_mailing_volunteers, source: :process_submitted_by
enum kind: { half_year: 0, trial_period: 1, termination: 2, half_year_process_email: 3, half_year_process_overdue: 4 }
enum kind: { trial_period: 1, termination: 2, half_year_process_email: 3, half_year_process_overdue: 4 }
ransacker :kind, formatter: ->(value) { kinds[value] }
validates :subject, presence: true
......
......@@ -12,7 +12,6 @@ class ReminderMailingVolunteer < ApplicationRecord
scope :picked, (-> { where(picked: true) })
scope :kind, ->(kind) { joins(:reminder_mailing).where('reminder_mailings.kind = ?', kind) }
scope :half_year, (-> { kind(ReminderMailing.kinds[:half_year]) })
scope :trial_period, (-> { kind(ReminderMailing.kinds[:trial_period]) })
scope :termination, (-> { kind(ReminderMailing.kinds[:termination]) })
scope :termination_for, ->(mailable) { termination.where(reminder_mailable: mailable) }
......@@ -50,10 +49,7 @@ class ReminderMailingVolunteer < ApplicationRecord
end
def feedback_url(options = {})
if reminder_mailing.half_year?
path = reminder_mailable
action = :last_submitted_hours_and_feedbacks
elsif reminder_mailing.trial_period?
if reminder_mailing.trial_period?
path = [volunteer, reminder_mailable.polymorph_url_object, TrialFeedback]
action = :new
elsif reminder_mailing.termination?
......
class ReminderMailingPolicy < ApplicationPolicy
alias_method :index?, :superadmin?
alias_method :new_half_year?, :superadmin?
alias_method :new_trial_period?, :superadmin?
alias_method :new_termination?, :superadmin?
alias_method :show?, :superadmin?
alias_method :send_trial_period?, :superadmin?
alias_method :send_half_year?, :superadmin?
alias_method :send_termination?, :superadmin?
alias_method :create?, :superadmin?
alias_method :edit?, :superadmin?
......
......@@ -3,6 +3,5 @@ nav.navbar.section-navigation.hidden-print
li= section_nav_button 'Probezeit Feedback Eingang', list_responses_trial_feedbacks_path
li= section_nav_button 'Halbjahres-Rapport Eingang', semester_process_volunteers_path
li= section_nav_button 'Probezeit Erinnerung erstellen', new_trial_period_reminder_mailings_path
li= section_nav_button 'Halbjahres Erinnerung erstellen', new_half_year_reminder_mailings_path
li= section_nav_button 'Versandte Erinnerungen', reminder_mailings_path
li= section_nav_button 'E-Mailvorlagen', email_templates_path
= render 'section_navigation'
h1 Halbjahres Erinnerungs-Email Versand erstellen
- pre_selected = params[:submitted_since].blank? ? 6.months.ago.beginning_of_month : params[:submitted_since].to_date
nav.navbar.section-navigation
ul.list-inline
li.dropdown role="submitted_since_filter"
a.dropdown-toggle.btn.btn-default.btn-sm aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"
= 'Eingereicht seit: '
= "#{I18n.t('date.month_names')[pre_selected.month]} #{pre_selected.year}"
span.caret
ul.dropdown-menu
- (0..11).to_a.reverse.map { |count| Time.zone.today.months_ago(count).beginning_of_month }.each do |date|
li class=('bg-success' if pre_selected == date)
= link_to "#{I18n.t('date.month_names')[date.month]} #{date.year}", new_half_year_reminder_mailings_path(submitted_since: date)
= render 'form'
......@@ -62,9 +62,7 @@ nav.navbar.hidden-print
ul.list-inline
- if !@reminder_mailing.sending_triggered
li
- if @reminder_mailing.half_year?
= button_link 'Emails versenden', send_half_year_reminder_mailing_path(@reminder_mailing)
- elsif @reminder_mailing.trial_period?
- if @reminder_mailing.trial_period?
= button_link 'Emails versenden', send_trial_period_reminder_mailing_path(@reminder_mailing)
- else
= button_link 'Email versenden', send_termination_assignment_reminder_mailing_path(@reminder_mailing)
......
......@@ -15,7 +15,8 @@ de:
reminder_mailings:
kinds: &id-kinds-enum-values
trial_period: Probezeit
half_year: Halbjährlich
half_year_process_email: 'Halbjahres Prozess'
half_year_process_overdue: 'Halbjahres Erinnerung'
termination: Beendigung
acceptance: &id-client-acceptance
accepted: Angemeldet
......@@ -67,10 +68,9 @@ de:
assignment: Begleitung
signup: Anmeldung
trial: Probezeit
half_year: Halbjährlich
termination: Beendigung
half_year_process_email: 'Half year process email'
half_year_process_overdue: 'Half year process overdue'
half_year_process_email: 'Halbjahres Prozess'
half_year_process_overdue: 'Halbjahres Erinnerung'
index:
<<: *id-kinds-template
show:
......@@ -193,8 +193,9 @@ de:
semester_process_volunteers:
show:
title: 'Semester Prozess %{semester} von %{name}'
review_semesters:
submit_review:
success: Erfolgreich überprüft
success: Erfolgreich übermittelt
salutation: &id-salutations
all: Alle
family: Familie
......
......@@ -88,9 +88,7 @@ Rails.application.routes.draw do
resources :reminder_mailings, except: [:new] do
get :new_trial_period, on: :collection
get :new_half_year, on: :collection
get :send_trial_period, on: :member
get :send_half_year, on: :member
end
resources :semester_process_volunteers do
......
class RemoveReminderMailingsWithHalfyearEnum < ActiveRecord::Migration[5.1]
def up
ReminderMailing.where(kind: :half_year).destroy_all
EmailTemplate.where(kind: :half_year).destroy_all
end
end
......@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20181217130920) do
ActiveRecord::Schema.define(version: 20181218094649) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
......
......@@ -121,10 +121,6 @@ def development_seed
2.times do
FactoryBot.create :email_template_trial, active: false
end
FactoryBot.create :email_template_half_year, active: true
2.times do
FactoryBot.create :email_template_half_year, active: false
end
FactoryBot.create :email_template_termination, active: true
2.times do
FactoryBot.create :email_template_termination, active: false
......@@ -143,14 +139,6 @@ def development_seed
assignment
end
handle_reminder_mailing_seed(:trial_period, trial_assignments)
# half_year Assignments
half_year_assignments = (1..3).to_a.map do
start_date = FFaker::Time.between(6.months.ago, 12.months.ago)
assignment = assignment_generator(start_date - 2.days, start_date)
generate_feedback_and_hours(assignment, start_date)
assignment
end
handle_reminder_mailing_seed(:half_year, half_year_assignments)
# ended Assignments
termination_assignments = (1..3).to_a.map do
start_date = FFaker::Time.between(1.year.ago, 2.years.ago)
......@@ -203,12 +191,6 @@ def development_seed
generate_feedback_and_hours(group_assignment.group_offer, start_date, volunteer: volunteers.first)
handle_reminder_mailing_seed(:trial_period, [group_assignment])
start_date = FFaker::Time.between(6.months.ago, 12.months.ago)
group_assignment = GroupAssignment.create(volunteer: volunteers.second, group_offer: group_offer,
period_start: start_date, period_end: nil)
generate_feedback_and_hours(group_assignment.group_offer, start_date, volunteer: volunteers.second)
handle_reminder_mailing_seed(:half_year, [group_assignment])
# ended GroupAssignments
start_date = FFaker::Time.between(6.months.ago, 12.months.ago)
end_date = FFaker::Time.between(1.week.ago, 3.days.ago)
......@@ -267,12 +249,6 @@ DEFAULT_TEMPLATES_EMAIL_TEMPLATES = [
body: "Liebe/r Freiwillige/r\r\n\r\nIhre Anmeldung wurde erfolgreich an uns abgeschickt. Wir freuen uns, dass Sie sich für einen freiwilligen Einsatz bei der AOZ interessieren.\r\n\r\n Wir werden uns bald bei Ihnen melden.\r\n\r\nFreundliche Grüsse\r\n\r\nAOZ Fachstelle Freiwilligenarbeit\r\n",
kind: 'signup',
active: true
},
{
subject: 'Halbjährliche Rückmeldung zu %{Einsatz}',
body: "Liebe/r %{Anrede} %{Name}\r\n\r\nWir bitten Sie um eine Halbjährliche Rückmeldung bezüglich %{Einsatz}.\r\nBitte tragen Sie Ihre Rückmeldung hier ein:%{FeedbackLink}\r\n\r\nFreundliche Grüsse\r\n\r\nAOZ Fachstelle Freiwilligenarbeit\r\n",
kind: 'half_year',
active: true
}
].freeze
......
......@@ -25,15 +25,6 @@ FactoryBot.define do
subject '%{Anrede} %{Name}'
end
trait :half_year do
kind { EmailTemplate.kinds[:half_year] }
body do
"%{Anrede} %{Name}\r\n\r\n#{FFaker::Lorem.paragraph}\r\n\r\n%{Einsatz} %{EinsatzStart} "\
'%{FeedbackLink}'
end
subject '%{Anrede} %{Name}'
end
trait :half_year_process_email do
kind { EmailTemplate.kinds[:half_year_process_email] }
body do
......@@ -53,7 +44,6 @@ FactoryBot.define do
factory :email_template_signup, traits: [:signup]
factory :email_template_trial, traits: [:trial]
factory :email_template_half_year, traits: [:half_year]
factory :email_template_half_year_process_email, traits: [:half_year_process_email]
factory :email_template_termination, traits: [:termination]
end
......
......@@ -4,12 +4,6 @@ FactoryBot.define do
body { FFaker::Lorem.paragraph }
subject { FFaker::Lorem.sentence }
trait :half_year do
kind { ReminderMailing.kinds[:half_year] }
body { FFaker::Lorem.paragraph }
subject { FFaker::Lorem.sentence }
end
trait :trial_period do
kind { ReminderMailing.kinds[:trial_period] }
body { FFaker::Lorem.paragraph }
......@@ -42,9 +36,6 @@ end
def create_reminder_mailable(reminder_mailing, volunteer)
case reminder_mailing.kind
when 'half_year'
create(:assignment, volunteer: volunteer, creator: reminder_mailing.creator,
period_start: FFaker::Time.between(6.months.ago, 12.months.ago))
when 'trial_period'
create(:assignment, volunteer: volunteer, creator: reminder_mailing.creator,
period_start: FFaker::Time.between(6.weeks.ago, 8.weeks.ago))
......
......@@ -20,20 +20,6 @@ class VolunteerMailerTest < ActionMailer::TestCase
end
end
test 'half_year_mailer' do
_, _, group_assignments = create_group_offer_entity(
nil, 8.months.ago, nil, create(:volunteer), create(:volunteer)
)
assignment = make_assignment(start_date: 8.months.ago)
mailing = create_half_year_mailing(*group_assignments, assignment)
mailing.reminder_mailing_volunteers.each do |rmv|
mailer = VolunteerMailer.public_send(mailing.kind, rmv).deliver
assert_equal rmv.process_template[:subject], mailer.subject
assert mailer.to.include? rmv.volunteer.contact.primary_email
assert_match rmv.process_template[:body], mailer.body.encoded
end
end
test 'volunteer termination with confirmation data is sent correctly' do
assignment = make_assignment(start_date: 8.months.ago, end_date: 2.days.ago)
mailing = create_termination_mailing(assignment)
......
......@@ -229,30 +229,6 @@ class AssignmentScopesTest < ActiveSupport::TestCase
assert_not query.include? exactly_six_weeks_mailed
end
test 'with_half_year_reminder_mailing' do
with_probation_mailing = make_assignment(start_date: 7.weeks.ago)
create_probation_mailing(with_probation_mailing)
with_half_year_mailing = make_assignment(start_date: 7.months.ago)
create_half_year_mailing(with_half_year_mailing)
with_no_mailing = make_assignment(start_date: 7.weeks.ago)
query = Assignment.with_half_year_reminder_mailing
assert query.include? with_half_year_mailing
assert_not query.include? with_probation_mailing
assert_not query.include? with_no_mailing
end
test 'with_trial_period_reminder_mailing' do
with_probation_mailing = make_assignment(start_date: 7.weeks.ago)
create_probation_mailing(with_probation_mailing)
with_half_year_mailing = make_assignment(start_date: 7.months.ago)
create_half_year_mailing(with_half_year_mailing)
with_no_mailing = make_assignment(start_date: 7.weeks.ago)
query = Assignment.with_trial_period_reminder_mailing
assert query.include? with_probation_mailing
assert_not query.include? with_half_year_mailing
assert_not query.include? with_no_mailing
end
test 'with_actively_registered_volunteer returns assignments of volunteers with_actively_registered_user' do
volunteer1 = create :volunteer, :external
volunteer2 = create :volunteer, :external
......
......@@ -94,18 +94,4 @@ class ReminderMailingTest < ActiveSupport::TestCase
assert(mailing_body.include?(mailing_creator.profile.contact.natural_name),
"#{mailing_creator.profile.contact.natural_name} not found in #{mailing_body}")
end
test 'submission_count' do
mailing = create :reminder_mailing, :half_year, reminder_mailing_volunteers:
[@assignment_probation, @group_assignment_probation],
created_at: 1.month.ago
assert_equal 0, mailing.submission_count
@assignment_probation.update(submitted_at: 2.months.ago)
assert_equal 0, mailing.submission_count
@assignment_probation.update(submitted_at: 1.day.ago)
assert_equal 1, mailing.submission_count
end
end
......@@ -2,8 +2,8 @@ require 'test_helper'
class ReminderMailingPolicyTest < PolicyAssertions::Test
test 'only superadmin is permitted to all actions' do
actions = ['index?', 'new_half_year?', 'new_trial_period?', 'new_termination?', 'show?',
'send_trial_period?', 'send_half_year?', 'send_termination?', 'create?',
actions = ['index?', 'new_trial_period?', 'new_termination?', 'show?',
'send_trial_period?', 'send_termination?', 'create?',
'edit?', 'update?', 'destroy?']
assert_permit(create(:user), ReminderMailing, *actions)
......
......@@ -11,110 +11,6 @@ class ReminderMailingsTest < ApplicationSystemTestCase
@volunteer_group_offer.user.update(last_sign_in_at: Time.now)
end
test 'group_assignment_and_assignment_elegible_for_half_year_reminder_mailing_are_includable' do
group_offer = create :group_offer
terminated_group_assignment = create :terminated_group_assignment
terminated_assignment = create :terminated_assignment
volunteer_assignment = create :volunteer
volunteer_group_offer = create :volunteer
assignment = create :assignment, period_start: 6.months.ago, period_end: nil,
volunteer: @volunteer_assignment
group_assignment = GroupAssignment.create(volunteer: @volunteer_group_offer, period_end: nil,
group_offer: @group_offer, period_start: 6.months.ago)
another_assignment = create :assignment, period_start: 6.months.ago, period_end: nil,
volunteer: volunteer_assignment
another_group_assignment = GroupAssignment.create(volunteer: volunteer_group_offer, period_end: nil,
group_offer: group_offer, period_start: 6.months.ago)
create :email_template_half_year
terminated_assignment.volunteer.user.update last_sign_in_at: Time.now
terminated_group_assignment.volunteer.user.update last_sign_in_at: Time.now
login_as @superadmin
visit reminder_mailings_path
page.find_all('a', text: 'Halbjahres Erinnerung erstellen').first.click
assert page.has_link? assignment.to_label,
href: assignment_path(assignment)
assert page.has_link? assignment.volunteer.contact.full_name,
href: volunteer_path(assignment.volunteer)
assert page.has_link? group_assignment.to_label,
href: group_offer_path(group_assignment.group_offer)
assert page.has_link? group_assignment.volunteer.contact.full_name,
href: volunteer_path(group_assignment.volunteer)
refute page.has_link? another_assignment.to_label,
href: assignment_path(another_assignment)
refute page.has_link? another_assignment.volunteer.contact.full_name,
href: volunteer_path(another_assignment.volunteer)
refute page.has_link? another_group_assignment.to_label,
href: group_offer_path(another_group_assignment.group_offer)
refute page.has_link? another_group_assignment.volunteer.contact.full_name,
href: volunteer_path(another_group_assignment.volunteer)
refute page.has_link? terminated_assignment.to_label,
href: assignment_path(terminated_assignment)
refute page.has_link? terminated_assignment.volunteer.contact.full_name,
href: volunteer_path(terminated_assignment.volunteer)
refute page.has_link? terminated_group_assignment.to_label,
href: group_offer_path(terminated_group_assignment.group_offer)
refute page.has_link? terminated_group_assignment.volunteer.contact.full_name,
href: volunteer_path(terminated_group_assignment.volunteer)
# All checkboxes are not checked?
refute page.find_all(
'input[name^="reminder_mailing[reminder_mailing_volunteers_attributes]"]'
).reduce { |a, b| a.checked? || b.checked? }
check 'Ausgewählt', match: :first
# at least one checkbox is checked?
assert any_checked?(
'input[name^="reminder_mailing[reminder_mailing_volunteers_attributes]"]')
# not all checkboxes are checked
refute all_checked?(
'input[name^="reminder_mailing[reminder_mailing_volunteers_attributes]"]')
check 'table-row-select-all'
# All checkboxes are checked
assert all_checked?(
'input[name^="reminder_mailing[reminder_mailing_volunteers_attributes]"]')
fill_in 'Betreff', with: 'Erinnerung fuer %{Einsatz}'
fill_in 'Text', with: 'Hallo %{Anrede} %{Name} %{EinsatzStart}'
first('input[type="submit"]').click
assert page.has_text? 'Erinnerungs-Mailing wurde erfolgreich erstellt.'
assert page.has_text? 'Art Halbjährlich'
assert page.has_text? 'Status Nicht versandt'
assert(
page.has_text?(@volunteer_assignment.reminder_mailing_volunteers.last.process_template[:subject]) ||
page.has_text?(@volunteer_group_offer.reminder_mailing_volunteers.last.process_template[:subject])
)
assert(
page.has_text?(@volunteer_assignment.reminder_mailing_volunteers.last.process_template[:body]) ||
page.has_text?(@volunteer_group_offer.reminder_mailing_volunteers.last.process_template[:body])
)
assert page.has_link? @volunteer_assignment.contact.full_name,
href: volunteer_path(@volunteer_assignment)
assert page.has_link? assignment.to_label, href: assignment_path(assignment)
assert page.has_link? @volunteer_group_offer.contact.full_name,
href: volunteer_path(@volunteer_group_offer)
assert page.has_link? group_assignment.group_offer.to_label,
href: group_offer_path(group_assignment.group_offer)
click_link 'Emails versenden'
creator = ReminderMailing.order('created_at asc').last.creator
assert page.has_link? creator.full_name
first_mailing = ReminderMailing.created_desc.first
assert page.has_text? "#{I18n.l(first_mailing.updated_at.to_date)} #{I18n.l(first_mailing.created_at.to_date)}"
end
test 'group_assignment_and_assignment_elegible_for_probation_reminder_mailing_are_includable' do
assignment = create :assignment, period_start: 7.weeks.ago, period_end: nil,
volunteer: @volunteer_assignment
......
......@@ -12,10 +12,6 @@ module ReminderMailingBuilder
create_mailing('trial_period', 'aaa', 'aaa', create(:user), *mailables)
end
def create_half_year_mailing(*mailables)
create_mailing('half_year', 'aaa', 'aaa', create(:user), *mailables)
end
def create_termination_mailing(*mailables)
create_mailing('termination', 'aaa', 'aaa', create(:user), *mailables)
end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment