4173 Commits

Author SHA1 Message Date
Aditi
4daf5ddbc6 Add forms for editing and creating forms 2013-06-28 22:21:27 +05:30
Christopher Allan Webber
4436fbcd01 Some documentation on how to write database migrations.
This commit sponsored by Andrei Cristian Petcu.  Thanks!
2013-06-28 10:27:06 -05:00
tilly-Q
9b8ef022ef In this commit, I have made a few changes and tightened up some of my models
code. I added in two major pieces of functionality: table foundations and a
decorator to confirm whether or not a user is a member of a certain group.

Table Foundations are default rows that should be present in a given table as
soon as the database is initialized. For example, I am using these to populate
the core__groups table with all of the necessary groups ('moderator', 'com-
menter', etc). Right now, this is achieved by adding a dictionary of parameters
(with the parameters as lists) to the constant FOUNDATIONS in
mediagoblin.db.models. The keys to this dictionary are uninstantiated classes.
The classes which require foundations also have must have a constructor so that
the list of parameters can be passed appropriately like so:
        Model(*parameters)
In order to implement these foundations, I added the method populate_table_fou-
-ndations to MigrationManager in mediagoblin.db.migration_tools.

The decorator, called user_in_group, accepts as a parameter a unicode string,
and then decides whether to redirect to 403 or let the user access the page. The
identifier is the Group.group_name string, because I believe that will allow for
the most readable code.

I also added in the simple decorator require_admin_login.

In terms of tightening up my code, I made many minor changes to my use of white
space and made a few small documentation additions. I removed a vestigial class
(ReportForm) from mediagoblin.user_pages.forms. I moved all of my migrations in-
to one registered Migration.

Setting up Foundations
==============================

--\ mediagoblin/db/migration_tools.py
--| created: MigrationManager.populate_table_foundations
--| modified: MigrationManager.init_or_migrate to run
  |     self.populate_table_foundations on init

--\ mediagoblin/db/models.py
--| created: FOUNDATIONS
----| created: group_foundations

Working With Permissions
==============================
--\ mediagoblin/decorators.py
--| created: user_in_group
--| created: require_admin_login

--\ mediagoblin/user_pages/views.py
--| modified: added decorator user_in_group to file_a_report

--\ mediagoblin/admin/views.py
--| modified: added decorator require_admin_login to all views functions

General Code Tidying
=============================

--/ mediagoblin/admin/views.py
--/ mediagoblin/user_pages/forms.py
--/ mediagoblin/db/models.py
--/ mediagoblin/user_pages/lib.py
--/ mediagoblin/user_pages/views.py
--/ mediagoblin/db/migrations.py
2013-06-27 14:13:42 -07:00
Emily O'Leary
6db23bd9b6 Updated comments for run_all_migrations and config_spec.ini. 2013-06-27 17:05:25 -04:00
Aditi
f79d00dc86 Add url mapping for blog-admin, blog-collection-admin, blog edit/create, blog post edit/create views. 2013-06-27 10:36:21 +05:30
Aditi
9b6f25b887 Add BlogPostEditForm for editing and creating a blog post entry. 2013-06-26 23:53:27 +05:30
Aditi
65630db19b Add basic files models, views, forms, routing, __init__ to for a new media_type blog. 2013-06-26 23:43:26 +05:30
Aditi
0ff6db861a Created filr structure for blog as a plugin(option 1). 2013-06-26 23:27:45 +05:30
Aditi
054ef9a76a Merge branch 'master' of git://gitorious.org/mediagoblin/mediagoblin 2013-06-26 22:13:23 +05:30
Rodney Ewing
491f2007f5 typo 2013-06-26 07:39:17 -07:00
Rodney Ewing
889564a3c1 do the label thing only for boolean fields 2013-06-26 07:36:11 -07:00
Rodney Ewing
c345dcf875 made edit_account to autofocus on the first field 2013-06-26 06:45:36 -07:00
Emily O'Leary
4a698535bc Improved test runtime from 352 seconds to 59 seconds by implementing an in-memory sqlite DB and including an option to run migrations on this newly created database by adding a config option called run_migrations to the config_spec and passing it along in app.py to the setup_database function. 2013-06-25 20:57:50 -04:00
Rodney Ewing
1e21471a8a added feature to render_divs where if field.label == '' then it will render form.description the same a render_label 2013-06-25 16:28:45 -07:00
Christopher Allan Webber
15db183151 Explain about sqlite dropping the constraint and why we're adding it back manually. 2013-06-25 17:12:33 -05:00
Rodney Ewing
6174169786 cleanup after merge 2013-06-25 13:43:33 -07:00
Rodney Ewing
af4414a85f Merge remote-tracking branch 'upstream/master' into auth
Conflicts:
	mediagoblin/app.py
	mediagoblin/auth/forms.py
	mediagoblin/auth/tools.py
	mediagoblin/db/migrations.py
	mediagoblin/db/models.py
	mediagoblin/edit/views.py
	mediagoblin/plugins/basic_auth/tools.py
	mediagoblin/tests/test_edit.py
2013-06-25 13:37:21 -07:00
Rodney Ewing
5a1be074c0 typo 2013-06-25 13:22:56 -07:00
Christopher Allan Webber
7fa4e19fc4 Add a bit more docs to plugin configuration
This commit sponsored by Michael Rauch.  Thank you!
2013-06-25 13:25:25 -05:00
tilly-Q
30a9fe7c1c This is the first stage of my project of implenting admin/moderator functiona-
lity. At this point, I have finished all the of basic work with the models! I
still need to do some tightening of their documentation, but they seem to be
working well.

Working with Models
========================================

--\ mediagoblin/db/models.py
--| Added in the Report model and table. This model is strictly a parent
----| Added in the CommentReport model which holds information about a report
    | filed against a comment. This class inherits from Report.
----| Added in the MediaReport model which holds information about a report f-
    | -iled against a media entry. This class inherits from Report.
--| Added in a UserBan model and table. This model is in a one to one relatio-
  | -nship with User. This object acts as a marker for whether a user is banned
  | or not.
--| Added in a Group model. These objects are in a many-to-many relationship
  | with User to explain which privileges a User has.
----| Added in GroupUserAssociation which is a table used to hold this many to
    | many relationship  between Group & User.

--\ mediagoblin/db/migrations.py
--| Added in the migrations for all of the additions to models
--| Added UserBan_v0
--| Added Report_v0
----| Added CommentReport_v0
----| Added MediaReport_v0
--| Added Group_v0
----| Added GroupUserAssociation_v0

Working with Templates, Views, and Routing
===============================================

>>> Reporting a Comment or a MediaEntry

--\ mediagoblin/user_pages/views.py
--| Added in the function file_a_report to allow user to file reports against
  | MediaEntries or Comments. Handles GET and POST requests.
--| Added in the function file_a_comment_report which uses file_a_report but
  | also catches appropriate information for comment_ids. I may be able to do
  | this more eloquently with decorators.

--\ mediagoblin/user_pages/routing.py
--| Added in route 'mediagoblin.user_pages.media_home.report_media'
  | (linked to address /u/<user>/m/<media>/report/ )
--| Added in route ''mediagoblin.user_pages.media_home.report_comment'
  | (linked to address /u/<user>/m/<media>/c/<comment>/report/ )

--\ mediagoblin/templates/mediagoblin/user_pages/report.html
--| I created this file to handle the filing of a report.

--\ mediagoblin/templates/mediagoblin/user_pages/media.html
--| Modified this file to add in links allowing users to report either media
  | or comments.

--\ mediagoblin/user_pages/lib.py
--| Added in build_report_form which processes data as either a CommentReport or
  | a MediaReport depending on which parameters are present

--\ mediagoblin/user_pages/forms.py
--| Added in CommentReportForm
--| Added in MediaReportForm
--| note: ReportForm is vestigial to an earlier strategy I used and I'll remove it
  | promptly

--\ mediagoblin/decorators.py
--| Added in 'get_media_comment_by_id' for use in mediagoblin/user_pages/views.py

>>> New Admin Panels

--\ mediagoblin/admin/views.py
--| Added in the function admin_users_panel
--| Added in the function admin_reports_panel

--\ mediagoblin/admin/routing.py
--| Added in route 'mediagoblin.admin.users'
  | (linked to address '/a/users')
--| Added in route 'mediagoblin.admin.reports'
  | (linked to address '/a/reports/')

--\ mediagoblin/templates/admin/user.html
--| Created this file as a template for monitoring users

--\ mediagoblin/templates/admin/report.html
--| Created this file as a template for monitoring reports filed against media or
  | comments
2013-06-24 16:35:31 -07:00
Christopher Allan Webber
c1b342ba95 Reverting "No more of this find_packages nonsense."
This reverts commit b75eb88fabdac4a9fdc863969ec9472110732607.
2013-06-24 09:10:48 -05:00
Christopher Allan Webber
c3de34d431 Adding a docstring to fixture_media_entry
It's not complete, but it makes clearer how to avoid errors with
fake_upload :)

This commit sponsored by Harper Sanford.  Thank you!
2013-06-22 17:40:12 -05:00
Christopher Allan Webber
56d1346789 Fix the data integrity bug in test_misc.
It turns out this has to do with some additions to the fixture adding
of media entries.  Since the new fake_upload field is True by default,
adding multiple entries that have media_files at once meant that
multiple additions of FileKeynames would be added at once if they were
not saved at the same time.  Tricky!

Thankfully, Elrond helped us figure this one out.  Thanks, Elrond :)

And thanks also to Aapo Rantalainen for sponsoring this commit!
2013-06-22 17:37:30 -05:00
Christopher Allan Webber
6331e927e4 Padding on the header-dropdown area
This helps make it a bit clearer that things are "contained inside"
the header dropdown area.
2013-06-22 16:19:58 -05:00
Christopher Allan Webber
257b8ab62a Merge remote-tracking branch 'refs/remotes/joar/notifications'
Conflicts:
	mediagoblin/db/migrations.py
2013-06-22 16:13:41 -05:00
Christopher Allan Webber
75ee3de301 Fix by Rodney Ewing so render_http_exception works with newer Werkzeug versions. 2013-06-22 12:25:31 -05:00
Christopher Allan Webber
f7698af1c1 Removing the "enter your password to change your email" bit.
A good idea, though it feels fairly clumsy in the form, and I think if
you're logged in you can already sabotage the user pretty well.

This commit sponsored by Sergey Matveev.  Thanks!
2013-06-21 17:24:33 -05:00
Rodney Ewing
e4deacd9c8 changes after cwebb's review 2013-06-21 14:14:40 -07:00
Christopher Allan Webber
c482f0149d Merge remote-tracking branch 'refs/remotes/rodney757-github/mail' 2013-06-21 15:50:36 -05:00
Aditi
2719d546a5 Merge remote-tracking branch 'cweb/master' 2013-06-21 23:09:22 +05:30
Aditi Mittal
1a6f065419 Initial commit 2013-06-21 08:55:46 -07:00
Christopher Allan Webber
92b22e7dea Indenting some stuff in pdf.html and wrapping width and height parameters in quotes 2013-06-20 18:14:14 -05:00
Alon Levy
0c6ae5ab08 pdf: remove two unused files (we use pdf.js in an iframe, no need for our own bastard copy)
Signed-off-by: Alon Levy <alevy@redhat.com>
2013-06-21 01:52:30 +03:00
Christopher Allan Webber
98454be7e9 What is models_v0.py? An explaination!
This commit sponsored by Alex Hannan-Joyner.  Thanks!
2013-06-20 12:08:20 -05:00
Christopher Allan Webber
838cde8175 Now in dev mode on 0.4.1 2013-06-17 22:50:31 -05:00
Christopher Allan Webber
1f973d93f4 MediaGoblin v0.4.0! 2013-06-16 20:32:28 -05:00
Christopher Allan Webber
f745220522 Committing extracted and compiled translations 2013-06-16 20:06:48 -05:00
Christopher Allan Webber
faf104ced8 Committing present MediaGoblin translations before pushing extracted messages 2013-06-16 20:06:32 -05:00
Christopher Allan Webber
51702d5b7d Documenting most of the the many new features in the release notes. 2013-06-16 19:39:03 -05:00
Christopher Allan Webber
384539b141 Added Laura Arjona to AUTHORS.
I'm not sure what all translators are there, but for sure Laura has
done a lot ;)
2013-06-15 18:49:32 -05:00
Rodney Ewing
54ef2c408b moved authentication_disabled to config_spec 2013-06-15 12:32:20 -07:00
Christopher Allan Webber
33db9af22c Adding new contributors to this release 2013-06-15 11:44:00 -05:00
Alon Levy
376dcbb493 media-types.rst: clarify the pdf media type requirements
Explain that it works fine without libreoffice, just with reduced
functionality.

Signed-off-by: Alon Levy <alevy@redhat.com>
2013-06-12 21:56:25 -05:00
Rodney Ewing
5101c469d7 changed no_auth to authentication_disabled in config 2013-06-11 14:30:38 -07:00
Joar Wandborg
0c7fa7556c New notifications, fixed
- Remove notification-gem if notifications are null
- Move comment-susbscription next to add-comment button
- Add copyright header to notifications.js
2013-06-09 22:23:20 +02:00
Joar Wandborg
2d7b6bdef9 New notifications
- Added request.notifications
- Email configuration fixes
  - Set config_spec default SMTP port to `0` and switch to SSL/non-SSL
    default if `port == 0`
  - Added email_smtp_use_ssl configuration setting
- Added migrations for notification tables
- Added __repr__ to MediaComment(Mixin)
- Added MediaComment.get_entry => MediaEntry
- Added CommentSubscription, CommentNotification, Notification,
  ProcessingNotification tables
- Added notifications.task to celery init
- Fixed a bug in the video transcoder where pygst would hijack the
  --help argument.
- Added notifications
  - views
    - silence
    - subscribe
  - routes
  - utility methods
  - celery task
- Added half-hearted .active comment CSS style
- Added quick JS to show header_dropdown
- Added fragment template to show notifications in header_dropdown
- Added fragment template to show subscribe/unsubscribe buttons on
  media/comment pages
- Updated celery setup tests with notifications.task
- Tried to fix test_misc tests that I broke
- Added notification tests
- Added and extended tests.tools fixtures
- Integrated new notifications into media_home, media_post_comment views
- Bumped SQLAlchemy dependency to >= 0.8.0 since we need polymorphic for
  the notifications to work
2013-06-09 21:18:37 +02:00
Christopher Allan Webber
25aad338d4 Added some test-writing docs for plugins, but not sure if they're good. ;)
This commit sponsored by Joe Lee.  Thank you!
2013-06-07 11:45:07 -05:00
Christopher Allan Webber
c139d49d83 ./bin/gmg dbupdate, not ./bin/dbupdate
Thanks to Tsyesica for catching this :)
2013-06-06 17:56:00 -05:00
Joar Wandborg
3c48bb39b7 CloudFiles: Default to SSL URIs 2013-06-07 00:28:17 +02:00
Rodney Ewing
dd8ef449e4 cleanup 2013-06-04 16:50:06 -07:00