internetee / auction_center

Estonian Internet Foundation's software for auctioning domain names
Other
6 stars 4 forks source link

Structure settings #488

Open vohmar opened 4 years ago

vohmar commented 4 years ago

The list of settings available in admin interface has grown quite long. There is no clear order for the elements in the list and they tend to move around in relation to the time of the last update making it hard to find what one is looking for.

Placement and order of the settings should be fixed and grouped logically together ie reminders, footer and link settings, voog integration, auction (duration, currency, min offer), terms (payment and registration), wishlist etc

user story: Admin is configuring registration reminder settings in admin interface. Admin finds setting "domain_registration_reminder" but does not spot the other setting for similar purpose "domain_registration_daily_reminder"

yulgolem commented 4 years ago

My proposal is to implement a new entity - SettingSection. It will have a title (maybe hardcoded or edited via rake tasks, i suppose we do not have to edit them on the fly anyway) and all the settings will have relation to one of the sections.

In setting index we will have one table per section along with section title. @vohmar , @karlerikounapuu your opinions?

karlerikounapuu commented 4 years ago

I'm wondering if new entity is really needed for this simple task. Wouldn't it be easier to simply add group string field to each Setting, which defaults to Other for example?

In a nutshell it could auto-discover groups in setting controller via Setting.distinct.pluck(:group) and show relevant settings under each group.

yulgolem commented 4 years ago

Well, semantically group still will be a different entity, and in terms of DB normalization it might be wisier to separate group from settings.