Re: GSoC 2015 - Interface Improvements to CritiqueBrainz
Shadab Zafar <[email protected]> Sat, 14 Mar 2015 04:48:11 +0530
| Newsgroups | gmane.comp.audio.musicbrainz.devel |
|---|---|
| Message-ID | <[email protected]> |
Sorry for the late reply. --- Gentlecat wrote: > To properly handle spam reports we might need some kind of user type > field that would indicate what user is allowed to do (post reviews, > decide what to do with spam reports, edit other reviews). For example, > we might want to deny some user access to review creation when they > post too much spam. We can have a user `status` field which'll store what the user can do. It could have values like 'Normal', 'Moderator', 'Suspended'. But who will decide which user has moderation/admin powers? In the docs, we'll have to make sure the status is not confused with the UserType field (which is based on karma.) --- > This section doesn't have to be limited to handling spam reports. > There might be some other useful functionality in this "moderation > interface". For example, fixing imported reviews (see CB-150). I am not sure I get how the interface will be used to fix those reviews. Will the reviews be listed there and the moderator will do some sort of bulk operation on all the imported reviews? --- > Another thing that I think is necessary there is logging. > We need to know what actions are taking place in this interface > and who makes them. Logging will be a nice addition. Should we log everything that's happening on the site (review creation, revision updates, spam reports, actions by moderators) or just the stuff coming from the moderation interface? We might also need some log filtering features so that a user can view events specific to their reviews. --- > Revisions and UI that will be implemented there might be useful for > integration with moderation and editing by admins. So an admin will be able to revert any review to any revision? --- > I think we shouldn't just add a bunch of embeds into one page... Okay. I'll add a preferences tab to the profile page where this and other settings will be configured. --- > > CB-80 - Albums have no discernible sort orders. > > How do you plan to fix this? > > It would be nice to know how you plan to fix CB-36. The thought that these issues were easy was due to my lack of understanding of CB's data models. For CB-36, I assumed that with each review we were also storing the artist's MBID. Now that I finally got to understand the schema properly, I too don't have a solution that's different from fetching all the related content and doing something with it. With the current schema, I don't think we'll ever be able to fix CB-36 (the way we want to). Will changing the schema to store an artist's id along with the review make sense? --- > How you are going to select other reviews to show on review pages (CB-120)? If only we had artist ids along with reviews, we could just display all reviews of the current artist by the same author. But for our current setup all I can think of is displaying the popular reviews of the author. Or the ones written around the same time. Silly ideas, I know. --- > > I could also try adding more MB entities, but am not too sure about which of > > those would make sense as a part of CB. 'Label', 'Recording' and 'Events'? > > This might be another good part of GSoC project. Though the question > is how exactly this is going to be implemented. What changes will need to be > made in front and back ends to add support for another entity type? To add new entity types, I think we just need to replace the `release_group` field in a review with `entity_id` for UUID & `entity_type` for the type of entity, something like 'mb_release_group', 'mb_event', 'mb_place', 'bb_publication', 'bb_creator', etc. We'll need some standard views for each entity type. The review/entity template will be extended by templates for each entity as there'll be different stuff to display along with the review's text. The entities that I'm targeting to add first are 'Events', 'Places' and 'Work'. I'll work on adding others if things go well. One issue though: we use python-musicbrainzngs to access MB's data, but it doesn't have support for all these new entities yet. Should I make adding them a part of my proposal as well? > After you figure out how to add support for multiple entity types it > should be easy to enable types that we choose to support. Also > consider how hard it would be to add support for reviewing entities > from BookBrainz or any other kind of brainz that we'll come up with in > the future. How to make this integration process easier. Once we've added a new MB entity, I don't think adding stuff from BookBrainz (or others) will be any different as long as we have a way of accessing their data. --- > You could outline a schedule to show how much time you think it would > take to fix things that you mentioned and see what else you will have > time for. For my schedule, I was thinking of adding the entities related stuff first, as it is a bit big in comparison to other things and will likely have some bugs once it is finished, then I could focus on adding the rest of the things and fixing the bugs. I'm having a hard time formulating a detailed timeline but will post it as soon as I am done. --- > What do you think is missing from the project? ... Some wild ideas: I'd be more interested in reading reviews of artists/albums that I've listened to. Reading them might prompt me to review that album as well, or atleast rate the review. We could link MB & CB by displaying reviews of releases that are present in any of the user's public Collections as the user is more likely to care about them. I prefer artists from my country. Perhaps we could have a user preference for country and favour displaying those reviews. But this can't be done with our current schema (reviews don't have associated country.) --- > Oh, one more thing that you can include in your project is integration with > MusicBrainz rating system (CB-4 <http://tickets.musicbrainz.org/browse/CB-4>). > I started working on this feature, but encountered some issues with sync > between CritiqueBrainz and MusicBrainz. I did a checkout of the `rating` branch and ran the code. I'll definitely look into it and finish the work. - Thanks, dufferZafar