Repository: nextcloud/appstore

Issue:
What categories do we need?
Currently allowed categories include:
- multimedia
- pim
- tools
- games

Anything else?



Discussion:
Why games? In the current ownCloud apps store are only 3 games and these have not been updated for more than 2 years...

@jancborchardt

@BernhardPosselt I made a list in the past: https://github.com/owncloud/core/issues/1924#issue-11414494 (see lower down). It’s just a copy of the Chrome webstore, I’m thinking we should look at the categories from the iOS / OS X App store and the Play Store and see what makes sense for categories for us.

Also, we never ever call it »pim«, that’s a stupid name. ;D It’s »Productivity«.

Oh, I didnt actually know what the hell Productivity was supposed to be :) 

What about using Productivity (PIM) or Productivity & PIM then?

No, no one knows what »PIM« stands for, and no other app store system uses the word. Sorry, but let’s kill that term. ;)

Then lets also kill Productivity :)

The term is so broad that it could contain anything from a cocain app to a time tracking app or library search app.

Google play store uses "office" for that stuff btw

Okidoke – as said let’s check the categories from both Play store and iOS app store and combine them into categories which make sense for us.

Here is the list of all Play Store categories:
- Android Wear
- Books & Reference
- Business
- Comics
- Communication
- Education
- Entertainment
- Finance
- Games
- Health & Fitness
- Libraries & Demo
- Lifestyle
- Live Wallpaper
- Media & Video
- Medical
- Music & Audio
- News & Magazines
- Personalization
- Photography
- Productivity
- Shopping
- Social
- Sports
- Tools
- Transportation
- Travel & Local
- Weather
- Widgets

And these are all App Store categories:
- Books
- Business
- Catalogs
- Education
- Entertainment
- Finance
- Food & Drink
- Games
- Health & Fitness
- Lifestyle
- Magazines & Newspapers
- Medical
- Music
- Navigation
- News
- Photo & Video
- Productivity
- Reference
- Shopping
- Social Networking
- Sports
- Travel
- Utilities
- Weather

- Lifestyle
- Magazines & Newspapers
- Medical
- Catalogs
- Food & Drink
- Live Wallpaper
- Health & Fitness
- Sports

i guess something have to do with humanity 
and should "disabled" /not listed  ... imho ....
or ?

best regards
Blacky

It's nice that you paste in stuff from completely different platforms however I think they don't apply to us in the slightest :D

I've gone through all existing apps and came up with the following:
- **Files**: Files app extensions, editors, metadata, external storage, file quotas, permissions, downloaders
- **Office & Text**: Notes, Documents, Etherpad
- **Monitoring**: File quotas, System status, Activity, Logging
- **Social & Communication**: Contacts, Messenger, Mail, Social Networking
- **Authentication**: Authentication backends
- **Integration**: Wordpress, CMS XY, Mozilla Sync
- **Multimedia**: Music, News, Maps, Videos, Weather, Gallery, Comic & Epub reader, PDF Reader
- **Time Management**: Calendar, Tasks, Project Management
- **Customization**: Remember me, Flux Capacitator, Navigation bar, Themes
- **Tools**: Bookmarks, Everything else

PS:  an app can be in multiple categories
PPS: we can always add categories later on if apps appear :D
PPPS: Categories without actual apps are probably not a good idea

@BernhardPosselt those categories sound good, just some adjustments:
- always alway always only capitalize the first word, as said before. ;) That is, make it »Office & text«, and »Social & communication« etc.
- Authentication should be folded into »Integration« because it doesn’t warrant its own category
- »Time management« is a weird name. Let’s use »Organization«

:+1: fully agree :) lets go with that


Resolving patch:
diff --git a/nextcloudappstore/core/models.py b/nextcloudappstore/core/models.py
--- a/nextcloudappstore/core/models.py
+++ b/nextcloudappstore/core/models.py
@@ -155,6 +155,7 @@ class Category(TranslatableModel):
     class Meta:
         verbose_name = _('Category')
         verbose_name_plural = _('Categories')
+        ordering = ['id']
 
     def __str__(self) -> str:
         return self.name


Test patch: