Skip to content

Remove unused mark_for_deletion functionality#128

Closed
dougal wants to merge 2 commits intothechangelog:masterfrom
dougal:remove_mark_for_deletion
Closed

Remove unused mark_for_deletion functionality#128
dougal wants to merge 2 commits intothechangelog:masterfrom
dougal:remove_mark_for_deletion

Conversation

@dougal
Copy link
Copy Markdown

@dougal dougal commented Nov 1, 2016

Found some unused functionality while spelunking the codebase. Of course this might be used with tools you have not published. Below is what I wrote in the first commit:


  • The functionality provided by this was never used in other modules.
  • Record deletion is always done using Repo.delete directly.
  • No tests exercised this code.
  • Code is almost identical to same pattern shown in Ecto.Changelog docs.
  • Code appears to have been pasted from model-to-model as more were added.

Thanks for open-sourcing, I learnt a lot, including the mark_for_deletion pattern.

* The functionality provided by this was never used in other modules.
* Record deletion is always done using Repo.delete directly.
* No tests exercised this code.
* Code is almost identical to same pattern shown in Ecto.Changelog docs.
* Code appears to have been pasted from model-to-model as more were added.
@dougal
Copy link
Copy Markdown
Author

dougal commented Nov 1, 2016

s/methods/functions/

@jerodsanto
Copy link
Copy Markdown
Member

Thanks for contributing! Code spelunking is fun 🔍

I haven't looked at this for awhile, but I'm pretty sure that these are necessary as the related Changelog.Episode will call cast_assoc when its changeset is processed via the admin form. That, in turn, calls changeset on the associated records, which calls mark_for_deletion. If the virtual attribute has been set via the params, the record will be deleted.

You are totally right that I haven't tested this well (there are not many tests in the admin), but you could test manually (or add tests!) by setting up an episode with some hosts/guests/channels/sponsors and then try deleting those associations on your branch. (I don't think it'll work.)

Thanks again, I love how many folks are taking the code for a spin! 💚

@dougal
Copy link
Copy Markdown
Author

dougal commented Nov 1, 2016

Yes, you are right, these are in fact used. In the templates the :delete virtual field is referenced for use in checkboxes for the deletion of things like guests or hosts from episodes.

If only I'd noticed this I could have submitted some tests instead. Thanks for the reply.

@dougal dougal closed this Nov 1, 2016
@jerodsanto
Copy link
Copy Markdown
Member

No worries, it is subtle and undocumented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants