1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-30 11:24:21 +01:00
fab-manager/app/models/statistic_profile.rb

40 lines
1.3 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
AVG_DAYS_PER_YEAR = 365.2425
# This table will save the user's profile data needed for statistical purposes.
# GDPR requires that an user can delete his account at any time but we need to keep the statistics original data to being able to
# rebuild them at any time.
# The data will be kept even if the user is deleted, but it will be unlinked from the user's account (ie. anonymized)
2020-03-25 10:16:47 +01:00
class StatisticProfile < ApplicationRecord
2019-06-03 17:25:04 +02:00
belongs_to :user
belongs_to :group
belongs_to :role
2019-06-03 17:25:04 +02:00
has_many :subscriptions, dependent: :destroy
accepts_nested_attributes_for :subscriptions, allow_destroy: false
has_many :reservations, dependent: :destroy
accepts_nested_attributes_for :reservations, allow_destroy: false
2019-06-05 16:21:39 +02:00
# Trainings that were validated by an admin
has_many :statistic_profile_trainings, dependent: :destroy
has_many :trainings, through: :statistic_profile_trainings
2019-06-06 16:34:53 +02:00
# Projects that the current user is the author
has_many :my_projects, foreign_key: :author_statistic_profile_id, class_name: 'Project', dependent: :destroy
def str_gender
gender ? 'male' : 'female'
end
def age
if birthday.present?
now = DateTime.current.utc.to_date
(now - birthday).to_f / AVG_DAYS_PER_YEAR
else
''
end
end
2019-06-03 17:25:04 +02:00
end