mediagoblin:mediagoblin.git
8 years agoWhew. This is a big update. I did some significant keeping work. I moved all of
tilly-Q [Wed, 17 Jul 2013 20:16:07 +0000 (16:16 -0400)]
Whew. This is a big update. I did some significant keeping work. I moved all of
the folders and enpoints labeled 'admin' to the more accurate term of 'moderat-
ion.' I also created the ability for admins and moderators to add or remove pr-
ivileges or to ban a user in response to a report. This also meant implementing
the UserBan class in various places. I also had to add a column called result
to the ReportBase table. This allows the moderator/admin to leave comments when
they respond to a report, allowing for archiving of what responses they do/n't
take.

--\ mediagoblin/db/migrations.py
--| Added result column to ReportBase

--\ mediagoblin/db/models.py
--| Added result column to ReportBase
--| Added documentation to tables I had made previously

--\ mediagoblin/decorators.py
--| Editted the user_has_privilege decorator to check whether a user has been
  | banned or not
--| Created a seperate user_not_banned decorator to prevent banned users from
  | accessing any pages
--| Changed require_admin_login into require_admin_or_moderator login

--\ mediagoblin/gmg_commands/users.py
--| Made the gmg command `adduser` create a user w/ the appropriate privileges

--\ mediagoblin/moderation/routing.py  << formerly mediagoblin/admin/routing.py
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/routing.py
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/moderation/views.py << formerly mediagoblin/admin/views.py
--| Renamed all of the routes & functions from admin -> moderation
--| Expanded greatly on the moderation_reports_detail view and functionality
--| Added in the give_or_take_away_privilege form, however this might be a use-
  | -less function which I could remove (because privilege changes should happe-
  | n in response to a report so they can be archived and visible)

--\ mediagoblin/static/css/base.css
--| Added in a style for the reports_detail page

--\ mediagoblin/templates/mediagoblin/base.html
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/templates/mediagoblin/moderation/report.html
--| Added form to allow moderators and admins to respond to reports.

--\ mediagoblin/templates/mediagoblin/moderation/reports_panel.html
--| Fixed the table for closed reports

--\ mediagoblin/templates/mediagoblin/moderation/user.html
--| Added in a table w/ all of the user's privileges and the option to add or
  | remove them. Again, this is probably vestigial
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/templates/mediagoblin/moderation/user_panel.html
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/tools/response.py
--| Added function render_user_banned, this is the view function for the redir-
  | -ect that happens when a user tries to access the site whilst banned

--\ mediagoblin/user_pages/forms.py
--| Added important translate function where I had text

--\ mediagoblin/user_pages/lib.py
--| Renamed functiion for clarity

--\ mediagoblin/user_pages/views.py
--| Added the user_not_banned decorator to every view

--\ mediagoblin/views.py
--| Added the user_not_banned decorator

--\ mediagoblin/moderation/forms.py
--| Created this new file

--\ mediagoblin/templates/mediagoblin/banned.html
--| Created this new file
--| This is the page which people are redirected to when they access the site
  | while banned

8 years agoI just added the attribution for the clipboard image to the code.
tilly-Q [Mon, 8 Jul 2013 18:31:28 +0000 (14:31 -0400)]
I just added the attribution for the clipboard image to the code.

8 years agoThis update I mostly did work on the templates for the admin pages. I did a co-
tilly-Q [Mon, 8 Jul 2013 18:20:28 +0000 (14:20 -0400)]
This update I mostly did work on the templates for the admin pages. I did a co-
-uple other small changes. I changed the information around the media processi-
ng panel to be more specific, since it was written when it was the only admin
page. Git didn't catch this, but I renamed the templates, so mediagoblin/templ-
ates/admin/user.html now referrs to the page which shows the details of a spec-
ific user. The list view pages are now named ELEMENT_panel.html(ie. user_panel)
I also added a column reported_user_id to the ReportBase table, and had to add
to Report filing to make sure that column gets created. Also I moved the report
media button (on a media page) to the sidebar, though it still needs some form-
atting

--\ mediagoblin/static/images/icon_clipboard.png
--| Added this image for use in template mediagoblin/admin/report.html.
--| Distributed by the GNOME project http://www.gnome.org
--| Under a GNU LGPL v.3 or Creative Commons BY-SA 3.0 license.
--| I'm still trying to figure out the appropriate way to attribute this in
  | the code

--\ mediagoblin/templates/mediagoblin/admin/media_panel.html
--| This template is actually the template formerly know as media.html. I
  | renamed it for clarity

--\ mediagoblin/templates/mediagoblin/admin/report_panel.html
--| This template is actually the template formerly know as report.html. I
  | renamed it for clarity

--\ mediagoblin/templates/mediagoblin/admin/user_panel.html
--| This template is actually the template formerly know as user.html. I renam-
  | -ed it for clarity

--\ mediagoblin/templates/mediagoblin/utils/report.html
--| This template is included in the media_home page. It is the report media
  | button. I figured I'd write it like this in case it got more complicated.

--\ mediagoblin/admin/routing.py
--| I changed the routing path /a/panel to /a/media for specificity

--\ mediagoblin/admin/views.py
--| I renamed admin_processing_panel to admin_media_processing_panel
--| I wrote a new view function admin_reports_detail
--| I wrote a new view function admin_users_detail

--\ mediagoblin/db/migrations.py
--| I added in the column reported_user_id to the ReportBase_v0 class

--\ mediagoblin/db/models.py
--| I added in the column reported_user_id to the ReportBase class

--\ mediagoblin/static/css/base.css
--| I added in css classes to display a report. Right now, they are just echo-
  | -ing the ways comments are displayed, but with the link in another color

--\ mediagoblin/templates/mediagoblin/admin/report.html
--| Created this new template (although git doesn't realize it) to show the de-
  | -tails of a specific report, indicated in the URL

--\ mediagoblin/templates/mediagoblin/admin/user.html
--| Created this new template (although git doesn't realize it) to show the de-
  | -tails of a specific user, indicated in the URL

--\ mediagoblin/templates/mediagoblin/base.html
--| Redirected the link from /a/panel to /a/media

--\ mediagoblin/templates/mediagoblin/user_pages/media.html
--| Moved the media report button to the sidebar

--\ mediagoblin/user_pages/lib.py
--| Changed the creation of reports, so that they also assign a column for rep-
  | -orted_user_id.

8 years agoThis was a simple commit. I changed all references to Groups into Privileges so
tilly-Q [Wed, 3 Jul 2013 18:46:21 +0000 (14:46 -0400)]
This was a simple commit. I changed all references to Groups into Privileges so
as to not conflict with the new federated groups which are also being written.
I also fixed up some of the code in the user_in_group/user_has_privilege decor-
ator. Users are now assigned the default privileges when they sign up, and ass-
iged active once they are activated. I updated the gmg command makeadmin to use
my groups as well. Lastly, I added the decorator to various views, requiring th-
at users belong to appropriate groups to access pages.

--\ mediagoblin/auth/tools.py
--| Added code to assign new users to default privileges

--\ mediagoblin/auth/views.py
--| Added code to assign users to u'active' privilege once the email
  | verification is complete

--\ mediagoblin/db/migrations.py
--| Renamed Group class to Privilege class

--\ mediagoblin/db/models.py
--| Renamed Group class to Privilege class

--\ mediagoblin/decorators.py
--| Renamed function based on the Group->Privilege change
--| Rewrote the function to be, ya know, functional

--\ mediagoblin/gmg_commands/users.py
--| Changed the 'makeadmin' command to add the target user to the admin
  | privilege group as well as affecting 'is_admin' column

--\ mediagoblin/submit/views.py
--| Added the requirement that a user has the 'uploader' privilege in order
  | to submit new media.

--\ mediagoblin/user_pages/views.py
--| Added the requirement that a user has the 'commenter' privilege in order
  | to make a comment.
--| Added the requirement that a user has the 'reporter' privilege in order
  | to submit new reports.
--| Got rid of some vestigial code in the file_a_report function.

8 years agoIn this commit, I have made a few changes and tightened up some of my models
tilly-Q [Thu, 27 Jun 2013 21:13:42 +0000 (14:13 -0700)]
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

8 years agoThis is the first stage of my project of implenting admin/moderator functiona-
tilly-Q [Mon, 24 Jun 2013 23:35:31 +0000 (16:35 -0700)]
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

8 years agoAdded some test-writing docs for plugins, but not sure if they're good. ;)
Christopher Allan Webber [Fri, 7 Jun 2013 16:45:07 +0000 (11:45 -0500)]
Added some test-writing docs for plugins, but not sure if they're good. ;)

This commit sponsored by Joe Lee.  Thank you!

8 years ago./bin/gmg dbupdate, not ./bin/dbupdate
Christopher Allan Webber [Thu, 6 Jun 2013 22:56:00 +0000 (17:56 -0500)]
./bin/gmg dbupdate, not ./bin/dbupdate

Thanks to Tsyesica for catching this :)

8 years agoCloudFiles: Default to SSL URIs
Joar Wandborg [Thu, 6 Jun 2013 22:28:17 +0000 (00:28 +0200)]
CloudFiles: Default to SSL URIs

8 years agoMake sure that the pytest revision is at least at 2.3.
Christopher Allan Webber [Mon, 3 Jun 2013 18:29:04 +0000 (13:29 -0500)]
Make sure that the pytest revision is at least at 2.3.

8 years agoCommenting out the max-height restriction on thumbnails.
Christopher Allan Webber [Thu, 30 May 2013 15:23:50 +0000 (10:23 -0500)]
Commenting out the max-height restriction on thumbnails.

8 years agoExplained more clearly why it's okay for interface classes to be keys.
Christopher Allan Webber [Wed, 29 May 2013 23:10:09 +0000 (18:10 -0500)]
Explained more clearly why it's okay for interface classes to be keys.

This commit sponsored by Nick Glynn.  Thank you!

8 years agoProvide a tip on how to do interfaces via our plugin API.
Christopher Allan Webber [Wed, 29 May 2013 22:21:15 +0000 (17:21 -0500)]
Provide a tip on how to do interfaces via our plugin API.

Uses a frogputer science approach to frobbing as an example (which is
total nonsense, but fun).

This commit sponsored by Ryan Kelln.  Thank you!

8 years agoActually use the right underlining for the wtforms hooks section
Christopher Allan Webber [Wed, 29 May 2013 21:12:24 +0000 (16:12 -0500)]
Actually use the right underlining for the wtforms hooks section

8 years agoAdditional hook tips! Documentation on how to modify a wtforms form.
Christopher Allan Webber [Wed, 29 May 2013 20:57:58 +0000 (15:57 -0500)]
Additional hook tips!  Documentation on how to modify a wtforms form.

This commit sponsored by Gian-Maria Daffré.  Thank you!

8 years agoWhere do you find hooks? How do you add them? An explaination!
Christopher Allan Webber [Wed, 29 May 2013 20:35:37 +0000 (15:35 -0500)]
Where do you find hooks?  How do you add them?  An explaination!

This commit about talking to community members sponsored by
community member Aeva Palecek.  Thanks!

8 years agoActually link to the release notes when we say "see the release notes".
Christopher Allan Webber [Wed, 29 May 2013 19:13:12 +0000 (14:13 -0500)]
Actually link to the release notes when we say "see the release notes".

This commit sponsored by Brian Kemp.  Thank you!

8 years agoLink to the plugin api stuff and the database plugin sections from the quickstart.
Christopher Allan Webber [Wed, 29 May 2013 19:10:07 +0000 (14:10 -0500)]
Link to the plugin api stuff and the database plugin sections from the quickstart.

This commit sponsored by Nathan Stephenson.  Thank you!

8 years agoThe pdf.js iframe view is awesome so I'm making it the default. So there! ;)
Christopher Allan Webber [Tue, 28 May 2013 21:36:27 +0000 (16:36 -0500)]
The pdf.js iframe view is awesome so I'm making it the default.  So there! ;)

This commit sponsored by Jay Turley.  Thank you!

8 years agoFixing bug where non-image types might break if app_config['original_date_visible...
Christopher Allan Webber [Tue, 28 May 2013 21:34:47 +0000 (16:34 -0500)]
Fixing bug where non-image types might break if app_config['original_date_visible'] is true

Not all media managers have the .get_original_date attribute, so of
course break.  This is fixed by making a new space where individual
media types can define this if they like.

This commit sponsored by Matthieu Dupont de Dinechin.  Thank you!

8 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

cherry picked from rodney757 and fixed for out of order
picking.

8 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

cherry-picked from rodney757, fixed few conflicts due to
out of order cherry-picking. Thanks to rodney757 for making
my idea even better.

8 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

8 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

8 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

8 years agoCommitting extracted and compiled translations
Christopher Allan Webber [Mon, 27 May 2013 18:55:06 +0000 (13:55 -0500)]
Committing extracted and compiled translations

9 years agoExtract footer into bits/base_footer.html.
Elrond [Sun, 26 May 2013 11:29:02 +0000 (13:29 +0200)]
Extract footer into bits/base_footer.html.

9 years agoNo more of this find_packages nonsense.
Christopher Allan Webber [Fri, 24 May 2013 23:49:06 +0000 (18:49 -0500)]
No more of this find_packages nonsense.

Explicitly declare mediagoblin as the only package.  find_packages has
caused messes in the past :)

This commit sponsored by Pedro Ângelo.  Thanks!

9 years agoImproved docs
Joar Wandborg [Fri, 24 May 2013 21:07:09 +0000 (23:07 +0200)]
Improved docs

- Fixed an outdated URL
- Rewrote "Separate Celery" section
- Changed literal blocks to bash code-blocks
- Changed wording when referring to the MediaGoblin WSGI application

9 years agomoved normalize_user_or_email_field to auth/tools.py from auth/forms.py
Rodney Ewing [Thu, 23 May 2013 21:29:19 +0000 (14:29 -0700)]
moved normalize_user_or_email_field to auth/tools.py from auth/forms.py

9 years agoMoving statcdirect automodule doc reference to autoclass per Elrond's suggestion.
Christopher Allan Webber [Thu, 23 May 2013 20:56:07 +0000 (15:56 -0500)]
Moving statcdirect automodule doc reference to autoclass per Elrond's suggestion.

Cleaner!

9 years agoCleaned up EXIF view
Joar Wandborg [Thu, 23 May 2013 20:21:02 +0000 (22:21 +0200)]
Cleaned up EXIF view

The last update made the assumption that EXIF metadata is in some way
consistent between camera models, images, manufacturers. This update
takes into account that nothing is certain whenever EXIF is involved.

9 years agoDocumentation changes to reflect new plugin assetlink stuff
Christopher Allan Webber [Thu, 23 May 2013 18:43:04 +0000 (13:43 -0500)]
Documentation changes to reflect new plugin assetlink stuff

 - updated old theme assetlink section to reflect new location of
   ./bin/gmg assetlink and removed comment about the plugin command
   being temporary.
 - Added a new section to the standard config file on where to put the
   plugin_static section
 - Added release notes about said section

This commit sponsored by Thomas Webber.  Thanks, Dad!

9 years agoFull unit test for the plugin assetlink command.
Christopher Allan Webber [Thu, 23 May 2013 18:14:01 +0000 (13:14 -0500)]
Full unit test for the plugin assetlink command.

Tests:
 - if the link doesn't exist yet
 - if the link already exists
 - if it is a symlink to something else
 - if it exists but is not a symlink

This commit sponsored by Lon Koenig.  Thank you!

9 years agoCleaning a bit: os.path.sep.join -> os.path.join
Christopher Allan Webber [Thu, 23 May 2013 18:12:20 +0000 (13:12 -0500)]
Cleaning a bit: os.path.sep.join -> os.path.join

9 years agodocstring update: link theme... and plugins!
Christopher Allan Webber [Thu, 23 May 2013 15:55:09 +0000 (10:55 -0500)]
docstring update: link theme... and plugins!

9 years agoGeneralize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins
Christopher Allan Webber [Thu, 23 May 2013 14:52:57 +0000 (09:52 -0500)]
Generalize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins

We've moved the module... probably I'll re-add theme just to give a
warning that this is deprecated.

This commit sponsored by Kevin Williams.  Thank you!

9 years agotest_plugin_staticdirect now works and passes.
Christopher Allan Webber [Wed, 22 May 2013 20:55:21 +0000 (15:55 -0500)]
test_plugin_staticdirect now works and passes.

This commit sponsored by Samuel Vale.  Thank you!

9 years agoSimple "staticstuff" plugin for writing unit tests on plugin static asset linking.
Christopher Allan Webber [Wed, 22 May 2013 19:20:44 +0000 (14:20 -0500)]
Simple "staticstuff" plugin for writing unit tests on plugin static asset linking.

It doesn't do much... it just has a static directory with a "bunnify"
CSS file and has a unit test that returns a json encoded set of a
staticdirect with both this plugin enabled and also
with (theoretically) a file distributed with MediaGoblin (it isn't
really, but in our case that doesn't matter.)

Also set up the static_setup hook / PluginStatic object for this
plugin; testing that with `./bin/gmg theme assetlink` seemed to work.
(And argh, need to update that command name, I know.)

This commit sponsored by Bradley Kuhn.  Thanks bkuhn!

9 years agoVarious fixes to plugin assetlinking command.
Christopher Allan Webber [Wed, 22 May 2013 19:07:41 +0000 (14:07 -0500)]
Various fixes to plugin assetlinking command.

Actually trying to run the command helps figure out what needs to be
fixed :)

This commit sponsored by Justin Nichol.  Thank you!

9 years agoMoving test_user_dev->user_dev in plugin app configs & adding plugin static serving
Christopher Allan Webber [Wed, 22 May 2013 17:23:06 +0000 (12:23 -0500)]
Moving test_user_dev->user_dev in plugin app configs & adding plugin static serving

The test_user_dev (as opposed to user_dev) was a legacy before we had
each application running in its own directory (as they now do in
pytest).  Move that name to just user_dev... this is more consistent
with the rest of our naming and will make writing these config files
easier.  (If we want to test that changing these still works, that
should be a separate unit test with special config files.)

Additionally, add plugin static serving to the common test paste
config file.

This commit sponsored by Juan Jose Marin Martinez.  Thank you!

9 years agoDocument assetlink and staticdirect usage for plugins.
Christopher Allan Webber [Wed, 22 May 2013 16:51:46 +0000 (11:51 -0500)]
Document assetlink and staticdirect usage for plugins.

Still a bit to clean up around what the command to be run actually is,
since that will likely change.

This commit sponsored by David Decker.  Thank you!

9 years agoOh right, actually mount /plugin_static/ :)
Christopher Allan Webber [Wed, 22 May 2013 15:06:24 +0000 (10:06 -0500)]
Oh right, actually mount /plugin_static/ :)

9 years agoWork towards getting plugin static linking/serving to work
Christopher Allan Webber [Tue, 21 May 2013 21:07:18 +0000 (16:07 -0500)]
Work towards getting plugin static linking/serving to work

 - add link_plugin_assets.  For now, incorrectly running from
   ./bin/gmg theme assetlink... uh, will fix ;)
 - Update paste and config_spec.ini configs to handle the locations
   and serving of the plugins' static resources

This commit sponsored by Marko Dimjašević.  Thank you!

9 years agoStart of ability to have plugins provide static resources!
Christopher Allan Webber [Thu, 16 May 2013 15:38:45 +0000 (10:38 -0500)]
Start of ability to have plugins provide static resources!

Note I have not tested any of this yet ;)  But we're already on our way:
 - We've got docs
 - The hook is there

Lots to do still though.  But, progress! :)

This commit sponsored by Laura Arjona Reina.  Thanks larjona!

9 years agoMove "bits" templates with dashes in them to underscores
Christopher Allan Webber [Wed, 22 May 2013 21:44:50 +0000 (16:44 -0500)]
Move "bits" templates with dashes in them to underscores

Moved all references and also added a note to our release notes.

This commit sponsored by Juan Rodriguez.  Thank you!

9 years agoMoved frontpage "welcome" stuff into its own bits file.
Christopher Allan Webber [Wed, 22 May 2013 21:31:39 +0000 (16:31 -0500)]
Moved frontpage "welcome" stuff into its own bits file.

This should make it easier to override just that part of the page.

This commit sponsored by David Rylander.  Thank you!

9 years agoPiwigo minor fix in categories_getList.
Mats Sjöberg [Tue, 21 May 2013 19:55:55 +0000 (22:55 +0300)]
Piwigo minor fix in categories_getList.

9 years agoPiwigo: some sanity checks before adding to collection as per Elrond's suggestions.
Mats Sjöberg [Tue, 21 May 2013 19:46:57 +0000 (22:46 +0300)]
Piwigo: some sanity checks before adding to collection as per Elrond's suggestions.

9 years agoPiwigo: return collections list only to logged in users.
Mats Sjöberg [Tue, 21 May 2013 19:42:41 +0000 (22:42 +0300)]
Piwigo: return collections list only to logged in users.

9 years agoRudimentary collections support for piwigo plugin.
Mats Sjöberg [Tue, 21 May 2013 19:40:02 +0000 (22:40 +0300)]
Rudimentary collections support for piwigo plugin.

9 years agoFixed minor typo in piwigo logging.
Mats Sjöberg [Tue, 21 May 2013 19:39:37 +0000 (22:39 +0300)]
Fixed minor typo in piwigo logging.

9 years agoMerge remote-tracking branch 'rodney757/change_pass'
Elrond [Tue, 21 May 2013 16:34:23 +0000 (18:34 +0200)]
Merge remote-tracking branch 'rodney757/change_pass'

* rodney757/change_pass:
  fixed translation, and changed tabs to spaces, and change it so the user can view their password as they're typing.
  modified change_pass tests
  moved change pass to a seperate view and fixed issues 709

9 years agofixed translation, and changed tabs to spaces, and change it so the user can view...
Rodney Ewing [Tue, 21 May 2013 15:51:21 +0000 (08:51 -0700)]
fixed translation, and changed tabs to spaces, and change it so the user can view their password as they're typing.

9 years agoRefactor submit util new_upload_entry
Elrond [Mon, 20 May 2013 22:28:37 +0000 (00:28 +0200)]
Refactor submit util new_upload_entry

This tool creates an initial media entry for a given user.
No magic. It just prefills the license with the user's
default license and adds the user as uploader.

9 years agomodified change_pass tests
Rodney Ewing [Mon, 20 May 2013 21:27:43 +0000 (14:27 -0700)]
modified change_pass tests

9 years agomoved change pass to a seperate view and fixed issues 709
Rodney Ewing [Mon, 20 May 2013 21:04:02 +0000 (14:04 -0700)]
moved change pass to a seperate view and fixed issues 709

9 years agopiwigo: Return proper error for wrong user/password.
Elrond [Mon, 20 May 2013 15:50:04 +0000 (17:50 +0200)]
piwigo: Return proper error for wrong user/password.

And fix tests.

9 years agopiwigo: Add PwgError class.
Elrond [Mon, 20 May 2013 17:28:35 +0000 (19:28 +0200)]
piwigo: Add PwgError class.

This allows to return piwigo xml errors.
Those can also be matched into html error codes.

9 years agoA bit of pep8 and small typo fix.
Elrond [Sat, 18 May 2013 23:14:46 +0000 (01:14 +0200)]
A bit of pep8 and small typo fix.

9 years agoOnly calculate aperture if fnumber is provided
Joar Wandborg [Sun, 19 May 2013 22:46:29 +0000 (00:46 +0200)]
Only calculate aperture if fnumber is provided

9 years agoTake into account incomplete EXIF data
Joar Wandborg [Sun, 19 May 2013 22:25:19 +0000 (00:25 +0200)]
Take into account incomplete EXIF data

9 years agoFixed EXIF tests
Joar Wandborg [Sun, 19 May 2013 22:11:00 +0000 (00:11 +0200)]
Fixed EXIF tests

9 years agoModifies EXIF section with Camera Info, display toggle and template styling
Gabriel Saldana [Tue, 5 Mar 2013 06:05:35 +0000 (00:05 -0600)]
Modifies EXIF section with Camera Info, display toggle and template styling

9 years agoChanges to display all EXIF information
Gabriel Saldana [Tue, 5 Mar 2013 05:19:22 +0000 (23:19 -0600)]
Changes to display all EXIF information

9 years agoAdded upload processing to the piwigo/addSimple
Joar Wandborg [Sun, 19 May 2013 20:54:39 +0000 (22:54 +0200)]
Added upload processing to the piwigo/addSimple

9 years agoJust word-wrapping the recent changes to the deployment docs.
Christopher Allan Webber [Fri, 17 May 2013 20:10:34 +0000 (15:10 -0500)]
Just word-wrapping the recent changes to the deployment docs.

9 years agoMerge remote-tracking branch 'refs/remotes/merge-requests/58'
Christopher Allan Webber [Fri, 17 May 2013 20:08:53 +0000 (15:08 -0500)]
Merge remote-tracking branch 'refs/remotes/merge-requests/58'

9 years agoNoting why we don't have an email uniqueness constraint in the db.
Christopher Allan Webber [Fri, 17 May 2013 19:10:29 +0000 (14:10 -0500)]
Noting why we don't have an email uniqueness constraint in the db.

This commit sponsored by Guido Günther.  Thanks!

9 years agoMerge remote-tracking branch 'refs/remotes/elrond/misc/pytest_enable_testing'
Christopher Allan Webber [Fri, 17 May 2013 16:13:17 +0000 (11:13 -0500)]
Merge remote-tracking branch 'refs/remotes/elrond/misc/pytest_enable_testing'

9 years agoReverting "Always activate testing in every test module ever."
Christopher Allan Webber [Fri, 17 May 2013 16:12:56 +0000 (11:12 -0500)]
Reverting "Always activate testing in every test module ever."
Revert "Always activate testing in every test module ever."

This reverts commit 0536306048daa0970d2e43411ba2a9bf073e570e.

9 years agoAlways activate testing using pytest fixture.
Elrond [Thu, 16 May 2013 23:46:20 +0000 (01:46 +0200)]
Always activate testing using pytest fixture.

This is possibly the cleaner approach to the problem solved
in the previous commit.

The previous commit makes sure, that testing is enabled at
import time. While this one enables it just before the
individual test is run. So this one takes a bit more CPU.

Maybe revert the previous commit?

References: 0536306048daa0970d2e43411ba2a9bf073e570e

9 years agoAlways activate testing in every test module ever.
Christopher Allan Webber [Thu, 16 May 2013 22:51:21 +0000 (17:51 -0500)]
Always activate testing in every test module ever.

Kind of a dorky way to implement this, but...

9 years agoFixing bug in dbupdate where it would explode on plugin that is missing MODELS or...
Christopher Allan Webber [Thu, 16 May 2013 21:56:20 +0000 (16:56 -0500)]
Fixing bug in dbupdate where it would explode on plugin that is missing MODELS or MIGRATIONS

The reason it blew up was because in the latter caught exception, it
wouldn't set models/migrations to an empty set, so it would actually
use the previous run's models/migrations!  That's what we get for
"leaky" variables on python for loops :)

This commit sponsored by Pascal Diogo Antunes.  Thank you!

9 years agoMerge branch '623_context_hooks'
Christopher Allan Webber [Wed, 15 May 2013 16:40:51 +0000 (11:40 -0500)]
Merge branch '623_context_hooks'

9 years agoTesting the template_context_prerender hook
Christopher Allan Webber [Wed, 15 May 2013 16:40:28 +0000 (11:40 -0500)]
Testing the template_context_prerender hook

This allows for modifying any context *right before render*, including
access to the variables that are passed in.  This test takes advantage
of that and takes one of the variables, "doubleme", and modifies
it (doubles it!)

In our case it turns "happy" and "joy" into "happyhappy" and "joyjoy".

This commit sponsored by Mark Holmquist.  Thank you!

9 years agoSimple tyop, view->test... I was writing too many tests at the time :)
Christopher Allan Webber [Wed, 15 May 2013 16:29:43 +0000 (11:29 -0500)]
Simple tyop, view->test... I was writing too many tests at the time :)

9 years agoOh right, actually add that hook we just documented, "template_context_prerender" :)
Christopher Allan Webber [Wed, 15 May 2013 16:11:24 +0000 (11:11 -0500)]
Oh right, actually add that hook we just documented, "template_context_prerender" :)

This commit sponsored by William Goudie.  Thanks Bill! :)

9 years agoHook->hooks since there's more than one of them :)
Christopher Allan Webber [Wed, 15 May 2013 16:10:25 +0000 (11:10 -0500)]
Hook->hooks since there's more than one of them :)

9 years agoAdding global context hooks & fixing method names->symbolic view names in docs
Christopher Allan Webber [Wed, 15 May 2013 15:37:41 +0000 (10:37 -0500)]
Adding global context hooks & fixing method names->symbolic view names in docs

This commit sponsored by Sheila Miguez.  Thanks Sheila!

9 years agoAdded documentation on view specific hooks
Christopher Allan Webber [Tue, 14 May 2013 21:09:55 +0000 (16:09 -0500)]
Added documentation on view specific hooks

This commit sponsored by Matthew Woodward.  Thank you!

9 years agoNormalizing indentation a bit in media.html
Christopher Allan Webber [Tue, 14 May 2013 19:57:37 +0000 (14:57 -0500)]
Normalizing indentation a bit in media.html

This commit sponsored by Christian Frank.  Thank you!

9 years agofix for bug when comments are disabled, link attribute is never closed
Rodney Ewing [Tue, 14 May 2013 19:36:13 +0000 (12:36 -0700)]
fix for bug when comments are disabled, link attribute is never closed

9 years agoDocumenting the test_modify_context and context_modified_app methods
Christopher Allan Webber [Tue, 14 May 2013 19:29:23 +0000 (14:29 -0500)]
Documenting the test_modify_context and context_modified_app methods

9 years agoFully working context hooks, both template/view and global level, with tests
Christopher Allan Webber [Tue, 14 May 2013 19:24:27 +0000 (14:24 -0500)]
Fully working context hooks, both template/view and global level, with tests

Needs documentation though... that's coming next :)

This commit sponsored by Luca Tius.  Thanks Luca!

9 years agopiwigo: Start first tests.
Elrond [Thu, 9 May 2013 11:07:10 +0000 (13:07 +0200)]
piwigo: Start first tests.

This first test checks the session logic of the piwigo
plugin. login, logout, getStatus.

9 years agopiwigo: Fix validator usage.
Elrond [Thu, 9 May 2013 10:28:54 +0000 (12:28 +0200)]
piwigo: Fix validator usage.

wtforms.validators.Optional doesn't take an argument.
I don't know, why I gave it one.

9 years agoMerge branch 'master' into 623_context_hooks
Christopher Allan Webber [Sun, 12 May 2013 21:17:35 +0000 (16:17 -0500)]
Merge branch 'master' into 623_context_hooks

9 years agoRemoving reference to nose (thanks for catching, Elrond!)
Christopher Allan Webber [Sun, 12 May 2013 21:07:28 +0000 (16:07 -0500)]
Removing reference to nose (thanks for catching, Elrond!)

This commit sponsored by Kevin McCarthy.  Thank you!

9 years agoTests should no longer use the environment-variable-related-setup and set up in app...
Christopher Allan Webber [Sun, 12 May 2013 20:55:59 +0000 (15:55 -0500)]
Tests should no longer use the environment-variable-related-setup and set up in app instead

This should remove a bunch of confusing cruft.  I hate using that
environment variable!  Also that old code was fragile.

This commit sponsored by Stephen Milton.  Thanks!

9 years agoMaking the uncomment-able db string match the one that we use in the install docs
Christopher Allan Webber [Sun, 12 May 2013 16:45:31 +0000 (11:45 -0500)]
Making the uncomment-able db string match the one that we use in the install docs

This commit sponsored by Denise Merkel.  Thanks, Mom!  Happy Mother's Day!

9 years agoMoving the get_original_date method over to the MediaManager.
Christopher Allan Webber [Sat, 11 May 2013 22:02:26 +0000 (17:02 -0500)]
Moving the get_original_date method over to the MediaManager.

This fixes a bug so that it doesn't explode if the media_data doesn't
exist.

This commit sponsored by Ole-Morten Duesund.  Thank you!

9 years agoUpdated "created on" feature to reflect new "hover for real time" tooling
Christopher Allan Webber [Sat, 11 May 2013 18:56:02 +0000 (13:56 -0500)]
Updated "created on" feature to reflect new "hover for real time" tooling

9 years agoMerge remote-tracking branch 'refs/remotes/tryggvib/532-exif-creation-date'
Christopher Allan Webber [Sat, 11 May 2013 18:48:42 +0000 (13:48 -0500)]
Merge remote-tracking branch 'refs/remotes/tryggvib/532-exif-creation-date'

Conflicts:
mediagoblin/config_spec.ini
mediagoblin/templates/mediagoblin/user_pages/media.html

9 years agoMerge remote-tracking branch 'gabithume/146_debug_message'
Christopher Allan Webber [Sat, 11 May 2013 15:19:31 +0000 (10:19 -0500)]
Merge remote-tracking branch 'gabithume/146_debug_message'

9 years agoUse the controller's symbolic/lookup name as part of the key for context hooks
Christopher Allan Webber [Sat, 11 May 2013 01:26:55 +0000 (20:26 -0500)]
Use the controller's symbolic/lookup name as part of the key for context hooks

This commit sponsored by David Collins.  Thank you!

9 years agoMerge branch 'master' into 623_context_hooks
Christopher Allan Webber [Sat, 11 May 2013 01:19:16 +0000 (20:19 -0500)]
Merge branch 'master' into 623_context_hooks

9 years agoMerge remote-tracking branch 'refs/remotes/dthompson/453_disable_comments'
Christopher Allan Webber [Fri, 10 May 2013 21:33:52 +0000 (16:33 -0500)]
Merge remote-tracking branch 'refs/remotes/dthompson/453_disable_comments'

9 years agoMerge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Fri, 10 May 2013 16:26:55 +0000 (11:26 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin

9 years agoMerge remote-tracking branch 'refs/remotes/merge-requests/47'
Christopher Allan Webber [Fri, 10 May 2013 16:23:36 +0000 (11:23 -0500)]
Merge remote-tracking branch 'refs/remotes/merge-requests/47'