mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-03-26 02:33:03 -04:00
* Implement activities * Add activities to timeline * Add factory * Add coverage * Fix misc issues * Activities display * Add activities to garden and plantings * Add activities to garden and plantings * Add planting * Add to planting, harvest show * More CRUD * More CRUD * index * index * Extract card view * Permissions * Add edit * Remove workaround fro vs code * Fix title * CSV * CSV * Add RSS, ical * Extend ical slightly * Cleanup * Rubocop * Remove doubled form * Change icon * Fix short description * Add menus * Put homepage widget in * Add activity icon - MIT licenced - https://www.svgrepo.com/svg/336823/plan * Naming * Missing files * Revert VS Code lag induced change * Update app/views/home/_harvests.html.haml * Update activities_controller.rb * Update activities_controller.rb * Update app/controllers/activities_controller.rb * Update index.html.haml * Apply suggestions from code review * Apply suggestions from code review * Typo * Translation * Apply suggestions from code review * Update app/views/plantings/index.ics.erb * Update app/models/activity.rb * Update plantings_spec.rb * Update plantings_spec.rb * We are now rendering an extra event, so check the next one for the old behaviour
33 lines
834 B
Ruby
33 lines
834 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Activity < ApplicationRecord
|
|
extend FriendlyId
|
|
include Ownable
|
|
include Finishable
|
|
include SearchActivities
|
|
|
|
belongs_to :garden, optional: true
|
|
belongs_to :planting, optional: true
|
|
|
|
friendly_id :activity_slug, use: %i(slugged finders)
|
|
|
|
CATEGORIES = ["General", "Weeding", "Soil Cultivation", "Fertilizing", "Pruning", "Topical Application/Treating", "Watering"]
|
|
|
|
validates :name, presence: true
|
|
validates :category, inclusion: { in: CATEGORIES }, presence: true
|
|
validates :owner, presence: true
|
|
|
|
validates :slug, uniqueness: true
|
|
|
|
delegate :location, :latitude, :longitude, to: :owner
|
|
delegate :login_name, :slug, :location, to: :owner, prefix: true
|
|
|
|
def activity_slug
|
|
"#{owner.login_name}-#{name}-#{id}".downcase.tr(' ', '-')
|
|
end
|
|
|
|
def to_s
|
|
name
|
|
end
|
|
end
|