On Fri, Mar 31, 2017 at 06:59:48PM +0300, Anast Gramm wrote:
> Hello, I wrote a more detailed plan for those two features you metioned for 
> the project
> scope. I will send it soon after some polishing.
here it is (also in pdf below)

1 Nested Crates
===============

  A preview for the nested crates is included. Tree like view. (If you don't 
listen
  to the Jazz/Trance sub-genre of Dub, you should!! :D )

  The following is derived by the comments on launchpad and my thoughts
  on them.


1.1 Overview
~~~~~~~~~~~~

1.1.1 What can a crate contain?
-------------------------------

  A crate can contain the following:
  - Another crate (smart or not)
  - Songs


1.1.2 Can a song be in multiple crates?
---------------------------------------

  Yes.


1.1.3 What happens when I click on a crate
------------------------------------------

  Recursively lists all the songs that exist in the crate or the
  subcrates that it contains. DISTINCT! (eliminates duplicate songs)

  ["mixxx's unique selling point!"]


["mixxx's unique selling point!"]
https://bugs.launchpad.net/mixxx/+bug/671632/comments/37


1.1.4 What happens when I drag&drop a crate into another one
------------------------------------------------------------

  If the crate you drag is a parent crate to the one you drop it then
  nothing happens. (or an error!)

  Else the drag crate and everything that it contains become members of
  the drop crate. (like moving files in a file system)


1.1.5 How do I insert a song to a multilevel crate
--------------------------------------------------

  You place the song to the crate you want it to become a member of. If
  you have multiple levels, the above still holds. If a crate/song
  belongs to a child, it belongs to the parent as well.


1.1.6 How many levels will be supported?
----------------------------------------

  As many as the user wants.


1.1.7 What if I want two crates with different parents have the same name?
--------------------------------------------------------------------------

  Every crate will contain information about it's parent, so the
  following can work:

  Crate1/sameSubcrateName

  Crate2/sameSubcrateName


1.2 Implementation
~~~~~~~~~~~~~~~~~~

  Here are some first thoughts on the way the above will get
  implemented.


1.2.1 Modifications
-------------------

  In order for crates to be able to hold both other crates and songs
  some modifications need to be made in the database schema.

  A new table with columns:
   PARENT_ID  CHILD_ID 
  ---------------------
   ...        ...      

  Here the CRATE_ID will be linked with other CRATE_ID's depending on
  the parent/child state of those.

  While populating this table checks will occur so that a crate can't be
  it's own parent, or a child can't have his parent as a child etc.

  The whole crate side of the database might need a revamp for this to
  work efficiently and be expandable at the same time. I will look at it
  in depth in time.


2 Search filter for Crates
==========================

  Due to the nested crate's complexity I will work on search filters
  first, while keeping in mind the future adjustments it might need in
  order to work well with nested crates.


2.1 Overview
~~~~~~~~~~~~

2.1.1 What is the search filter for crates
------------------------------------------

  Typing "crate:" in the search bar, will act like a filter listing
  whatever any song within a crate named whatever comes after "crate:"
  (fuzzy style). Like "artist:"


2.1.2 What about nested crates
------------------------------

  Say you have a top level crate named (creatively) Crate1 with
  subcrates and songs nested under it. Typing crate:Crate1 in the search
  will list every song this crate contains and every subcrate's song as
  well.


2.1.3 What about the same name subcrates we talked before
---------------------------------------------------------

  Typing crate:sameSubcrateName will get you both the crates with the
  same name. If you want your search to stay in one crate you have to
  type it's parent crate (in case this is the same as well, you need the
  full path)


2.2 Implementation
~~~~~~~~~~~~~~~~~~

  Here I will make things work like the other filters, already existing
  (artist: etc).

  I believe this part will be not that hard to pull off.

  I will have a more detailed plan for the implementation after the
  community bonding period where I will read the whole code, and
  understand it completely.

Attachment: notes.pdf
Description: Adobe PDF document

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to