[mezzanine-users] Deprecating Google Groups in favor of GitHub Discussions

2021-11-19 Thread Eduardo Rivas
Hello everyone 

This is a quick announcement about my intention to make GitHub Discussions 
(https://github.com/stephenmcd/mezzanine/discussions) the official forum 
platform for Mezzanine.

Having the forum and the code live under the same platform makes managing 
them easier, specially when it comes to converting issues into discussions 
and viceversa. I encourage everyone to follow the link above and reply to 
the "Welcome" thread over there.

I expect to disable new posts on this Google Group in the next few weeks.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/dbf62f01-cbc0-4588-89f4-0bd0601e35den%40googlegroups.com.


Re: [mezzanine-users] Re: Mezzanine 5.0 alpha 1 released!

2021-02-23 Thread Eduardo Rivas
Installing the alpha is not the same as installing from the master branch.
The alpha doesn't need to be built, it can be installed directly: pip
install -U mezzanine==5.0.0a1

On Tue, Feb 16, 2021, 3:29 PM Michael Babcock 
wrote:

> Finally decided to check this out and this might be a stupid question but
> how do I when building this release, convince it to insert a version other
> than 0.0.dev0?
> When I subsequently try to pip install {stuff that needs mezzanine}, it
> insists on complaining about my 'older' release.
> Is there a step or package I'm missing?  Also, can't wait to see how
> things evolve!
>
> On Tuesday, September 8, 2020 at 10:02:23 p.m. UTC-4 jeriva...@gmail.com
> wrote:
>
>>
>> Hello everyone!
>>
>> I'm very happy to announce that the first pre-release of the next major
>> version of Mezzanine is now available: 5.0.0 alpha 1. You can download it
>> right now with `pip install -U mezzanine==5.0.0a1`. This will also get you
>> the alpha versions for filebrowser-safe and grappelli-safe.
>>
>> *The biggest change is that we have completely dropped support for Python
>> 2 and Django versions prior to 2.2.*
>>
>> Other than that you can check out the pre-release notes over at GitHub:
>> https://github.com/stephenmcd/mezzanine/releases/tag/v5.0.0-alpha.1
>>
>> With this version we're also testing a new release process based on
>> Semantic Versioning that should make it much easier to publish pre-release
>> and stable versions to PyPI so the community can test Mezzanine without
>> having to install from GitHub.
>>
>> Additionally, since this is an alpha release, we request you do not use
>> it in production systems (unless you're ready to report and/or fix bugs).
>> You can help get Mezzanine to a stable release by filing bug reports on the
>> GitHub issue tracker. The community has already identified a few minor bugs
>> which are now being worked on as you can see here:
>> https://github.com/stephenmcd/mezzanine/issues?q=is%3Aopen+is%3Aissue+label%3A%22release+blocker%22
>>
>> Finally, I want to publicly thank Stephen McDonald who authored and
>> maintained Mezzanine for many years, as well as many other members of the
>> core team and the larger community who have made Mezzanine what it is
>> today. Going forward I (Ed Rivas) will be serving as the maintainer of the
>> project. I look forward to helping grow and nurture this amazing CMS.
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Mezzanine Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/mezzanine-users/q3EheRe2IP8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> mezzanine-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mezzanine-users/92bea581-019c-4e61-8f3d-b75a4bc114b6n%40googlegroups.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/CALJL-RMCEj9fUETTa05H-5nLrS8UVbTDFzdaB1Oukc4EhkQxMQ%40mail.gmail.com.


[mezzanine-users] Mezzanine 5.0 alpha 1 released!

2020-09-08 Thread Eduardo Rivas

Hello everyone!

I'm very happy to announce that the first pre-release of the next major 
version of Mezzanine is now available: 5.0.0 alpha 1. You can download it 
right now with `pip install -U mezzanine==5.0.0a1`. This will also get you 
the alpha versions for filebrowser-safe and grappelli-safe.

*The biggest change is that we have completely dropped support for Python 2 
and Django versions prior to 2.2.*

Other than that you can check out the pre-release notes over at GitHub: 
https://github.com/stephenmcd/mezzanine/releases/tag/v5.0.0-alpha.1

With this version we're also testing a new release process based on 
Semantic Versioning that should make it much easier to publish pre-release 
and stable versions to PyPI so the community can test Mezzanine without 
having to install from GitHub.

Additionally, since this is an alpha release, we request you do not use it 
in production systems (unless you're ready to report and/or fix bugs). You 
can help get Mezzanine to a stable release by filing bug reports on the 
GitHub issue tracker. The community has already identified a few minor bugs 
which are now being worked on as you can see here: 
https://github.com/stephenmcd/mezzanine/issues?q=is%3Aopen+is%3Aissue+label%3A%22release+blocker%22

Finally, I want to publicly thank Stephen McDonald who authored and 
maintained Mezzanine for many years, as well as many other members of the 
core team and the larger community who have made Mezzanine what it is 
today. Going forward I (Ed Rivas) will be serving as the maintainer of the 
project. I look forward to helping grow and nurture this amazing CMS.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/9d034202-e26c-4596-b966-fb1523c12d94n%40googlegroups.com.


RE: Re: [mezzanine-users] Are fabric deployments popular?

2020-02-21 Thread Eduardo Rivas
Glad to see the fabfile is still in use. I think it would be best to keep it as part of Mezzanine then. Regarding some of the questions/comments: If you’re not using git or mercurial as version control, you can deploy using rsync by setting “DEPLOY_TOOL”: “rsync” in your FABRIC dictionaryI’m not aware of other fabfiles at the moment, only one I maintain over at https://github.com/jerivas/mezzanine-webf to deploy to Webfaction. Would be cool to see others develop something similar for AWS and the like. From: Roger van SchieSent: Friday, February 21, 2020 9:45 AMTo: mezzanine-users@googlegroups.comSubject: Re: [mezzanine-users] Are fabric deployments popular? Hi Ed I believe the included fab files decreases the learning curve for new users dramatically, and it would be great to keep it in, not only to make it easier for new users to get going, but to avoid unnecessary traffic on the forums. I would suggest having multiple fab files though, for different types of  infrastructure. For example, one for normal rsync, one for git, one for Amazon web services etc. Thanks for all your hard work and help on the forums Ed! RegardsRoger On Wed, 19 Feb 2020 at 01:16, Eduardo Rivas <jerivasmel...@gmail.com> wrote:Hello everyone, I'm Ed, one of the collaborators helping maintain Mezzanine. As we prepare to release the next version of Mezzanine (supporting Python 3 and Django 2.2 only) an issue was recently filed wondering about the future of mezzanine's built-in fabfile (which only works with Python 2). This made me wonder: Are Fabric deployments widely used by the community? What are your thoughts on the following options: Stop maintaining a fabfile of our own and just point people to general Django deployment docsExtract the fabfile as a separate package/projectKeep the fabfile as part of MezzanineLooking forward to hearing from the community.-- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group.To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com.To view this discussion on the web visit https://groups.google.com/d/msgid/mezzanine-users/02b090b5-2d83-485d-aee3-f5997da14844%40googlegroups.com.-- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group.To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com.To view this discussion on the web visit https://groups.google.com/d/msgid/mezzanine-users/CAFny93BODzdekVAZ26ibsXXqFHrRH_G2M9o-b6Hs9kZ008acCw%40mail.gmail.com. 



-- 
You received this message because you are subscribed to the Google Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mezzanine-users/5e503d7f.1c69fb81.62210.9061%40mx.google.com.


[mezzanine-users] Are fabric deployments popular?

2020-02-18 Thread Eduardo Rivas
Hello everyone,

I'm Ed, one of the collaborators helping maintain Mezzanine. As we prepare 
to release the next version of Mezzanine (supporting Python 3 and Django 
2.2 only) an issue was recently filed 
 wondering about the 
future of mezzanine's built-in fabfile (which only works with Python 2).

This made me wonder: Are Fabric deployments widely used by the community? 
What are your thoughts on the following options:


   - Stop maintaining a fabfile of our own and just point people to general 
   Django deployment docs
   - Extract the fabfile as a separate package/project
   - Keep the fabfile as part of Mezzanine
   
Looking forward to hearing from the community.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/02b090b5-2d83-485d-aee3-f5997da14844%40googlegroups.com.


RE: [mezzanine-users] Migration to Jazzband / Code Shelter

2019-12-12 Thread Eduardo Rivas
Hi Pete, Thanks for bringing this over to the mailing list. I’m one of the contributors to Mezzanine and still use it almost daily. I’m glad others still want to see the project move forward. Do Jazzband or Code Shelter have contributors on standby ready to take in projects and perform maintenance tasks? I’m not entirely clear on how they work, just want to make sure I understand correctly. From: Pete DermottSent: Tuesday, December 10, 2019 8:24 AMTo: Mezzanine UsersSubject: [mezzanine-users] Migration to Jazzband / Code Shelter Following on from the discussion on GitHub issue #1928 Throughout 2019 there has been 1 commit to the master Github repo, we haven't had a full release since August 2018 and there are a number outstanding changes that are waiting to go into a new release. We still don't have Django 2 support despite it being released in December 2018 and Django 3 is now out and available for development. I use Mezzanine a lot in my day to day projects but I don't feel like I personally have the skill to take it forward and make it fully compatible with the changes to Django and jQuery that are required. Basically, I feel that this project needs a bit of help to keep it relevant. Thankfully there are maintainer communities in Jazzband and Code Shelter that may be able to help us. I feel that handing the project over to them should at least ensure that active Mezzanine projects are not left exposed when 1.11 is deprecated in April 2020. Also - just to note - this is in no way mean to denigrate the hard work that Stephen and others have done over the years with this project, it speaks volumes about the quality of the codebase that Mezzanine is still my Django CMS of choice after all this time.-- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group.To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com.To view this discussion on the web visit https://groups.google.com/d/msgid/mezzanine-users/476a90bc-1e21-4cfe-8039-b72a6e1748eb%40googlegroups.com. 



-- 
You received this message because you are subscribed to the Google Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mezzanine-users/5df2d19f.1c69fb81.4849c.22cd%40mx.google.com.


RE: [mezzanine-users] Page and Site SQL Gets Triggered with View LevelCaching

2019-07-24 Thread Eduardo Rivas
Hi Matt.

My guess is that Mezzanine’s Page middleware tries to fetch a page on every 
request (as pages can have any URL). I would try to disable the middlewares you 
don’t need and see if that works.

From: Matt Mansour
Sent: Wednesday, July 24, 2019 10:05 AM
To: Mezzanine Users
Subject: [mezzanine-users] Page and Site SQL Gets Triggered with View 
LevelCaching

Hi All, 

I am caching an endpoint at the view level and I noticed there are still two 
sql calls being made for the Site and Page objects, after the below response is 
cached .

class CampaignDetail(APIView):
 @method_decorator(cache_page(10))
 def get(self, request, version, campaign_key):
 campaign = 
Campaign.objects.select_related('product').get(campaign_key=campaign_key)
 data = {
 "active":"true",
 "deal-price": "20.00",
 "daily-limit-reached": campaign.daily_limit_reached(),
 "keywords": campaign.get_campaign_keyword(),
 "product-asin": campaign.product.asin,
 "product-name": campaign.product.product_name,
 "product-price": "{}".format(campaign.product.price)
 }

 return Response(data)

Campaign subclasses TimeStamped (not Displayable), so I am wondering why the 
following SQL still gets called upon refresh during the cache period:

SELECT"django_site"."id", "django_site"."domain", "django_site"."name"FROM 
"django_site" WHERE UPPER("django_site"."domain"::text) = 
UPPER('localhost:8000')

And 

SELECT"pages_page"."id", "pages_page"."keywords_string", 
"pages_page"."site_id", "pages_page"."title", "pages_page"."slug", 
"pages_page"."_meta_title", "pages_page"."description", 
"pages_page"."gen_description", "pages_page"."created", "pages_page"."updated", 
"pages_page"."status", "pages_page"."publish_date", "pages_page"."expiry_date", 
"pages_page"."short_url", "pages_page"."in_sitemap", "pages_page"."_order", 
"pages_page"."content_model", "pages_page"."parent_id", 
"pages_page"."in_menus", "pages_page"."titles", 
"pages_page"."login_required"FROM "pages_page" WHERE ("pages_page"."site_id" = 
1 AND ("pages_page"."publish_date" <= 
'2019-07-24T15:26:59.395377+00:00'::timestamptz OR "pages_page"."publish_date" 
IS NULL) AND ("pages_page"."expiry_date" >= 
'2019-07-24T15:26:59.396055+00:00'::timestamptz OR "pages_page"."expiry_date" 
IS NULL) AND "pages_page"."status" = 2 AND "pages_page"."slug" IN ('api', 
'api/v1', 'api/v1/campaign/a8b7ea62-79d0-4ee4-8f62-81fcde54ea32', 
'api/v1/campaign')) ORDER BY "pages_page"."slug" DESC

I'd like to avoid all db hits if possible. Does anyone see what I am doing 
wrong or if there is a bug here? 

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/ad008e6c-856b-466a-919e-fa407461a047%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/5d388935.1c69fb81.8de47.be88%40mx.google.com.


RE: [mezzanine-users] Re: Multiple Blogs

2019-06-03 Thread Eduardo Rivas
Hi Jesper.

That’s correct, you’ll need to copy the entire mezzanine.blog folder. You’ll 
also need to replace all mentions of it with your own version on settings.py 
and urls.py.

You’re essentially creating your own blog app to replace the one that ships 
with Mezzanine.

From: Jesper Joachim Sørensen
Sent: Sunday, June 2, 2019 3:44 AM
To: Mezzanine Users
Subject: Re: [mezzanine-users] Re: Multiple Blogs

Hey Eduardo, and thanks for your inputs on multiple blogs. I am currently 
creating a multiple blog for a primary schcool with a blog for each grade. I am 
following your suggestions on the steps to follow in mezzanine.
However the first point about copying all the the contents from mezzanine.blog 
made me a little confused. Normally I just copy one a file at a time to my blog 
app (eg. the blog_post_deatil.html) and then modifies this file, and then it 
will overwrite the blog_post_deatil.html in mezzanine.blog. 
However for the models I think it's different. I tried to copy the content of 
the models.py from mezzanine.blog to my blog app (same procedure as with the 
blog_post_deatil.html) but that throws me an error (something about a 
duplicate). So when you say copying all the contents from mezzanine.blog, do 
you also mean the models.py and how without getting an error?
Kind regards, Jesper

fredag den 10. august 2018 kl. 20.18.27 UTC+2 skrev Eduardo Rivas:
Sorry, don’t have enough time to write a code sample right now, but here is a 
more detailed description of the steps:
 
• Create a new application with all the contents copied from mezzanine.blog. 
Let’s call it multiblog. Add it to installed apps.
• In models.py add a new Blog model inheriting from Slugged (this will give it 
a title and slug). Register it in the admin so you can add Blog instances.
• Add foreign keys to this new Blog model to BlogPost and BlogCategory, so each 
post and category will belong to one blog. Create the required migrations. Make 
sure you expose the FK field in the admin so each post and category can choose 
to which Blog they will belong to.
• Rewrite urls.py to account for the Blog slug. For example: “/blog/some-post” 
becomes “/blog/blog-slug/some-post”. The regex for the URL should capture the 
blog slug so it will be passed to the view.
• Rewrite views.py to account for the new blog slug, and modify the querysets 
to only look into the posts / categories for a particular blog. Something like 
BlogPost.objects.filter(blog__slug=).
• Optionally rewrite the template-finding logic in the view to allow you to use 
different (per-blog) templates. For example, you could have the view load 
templates by looking inside folders that match the blog slug, like 
“templates/blog//blog_post_detail.html” and 
“templates/blog//blog_post_list.html”.
 
Hope that helps!
 
From: Amir
Sent: Thursday, August 9, 2018 7:48 AM
To: Mezzanine Users
Subject: [mezzanine-users] Re: Multiple Blogs
 
This suggestion of yours is remarkable Eduardo and I am craving to have 
multiple and separated blogs. I am a bit new to Django though, Could you 
elaborate more on the details please? I could open a topic on StackOverflow if 
you would prefer. This would be a huge help bro. 

On Tuesday, March 3, 2015 at 6:33:33 AM UTC+3:30, Eduardo Rivas wrote:
Hello Dennis. I actually needed to do this for a project a few years ago. As 
far a I know, Mezzanine doesn't support multiple blogs out of the box. What I 
did was create a "Blog" model, which simply had a slug and title, and then add 
it as FK to the standard BlogPost and BlogCategory models. After that, it's 
just a matter of updating urls and views to account for a blog_slug parameter 
to get the correct Blog instance. If you want to get fancy, you can create 
"base" templates for each blog. That way, you get unique blog posts, categories 
and templates for each blog. You'll also need to modify the queries made by the 
Admin to only return the subset of BlogPost's that match a Blog instance in 
particular.

Important note: this of course implies you're "forking" Mezzanine's blog app, 
so you will have to maintain it by yourself and install it in place of the 
default one.
-- 
You received this message because you are subscribed to a topic in the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/mezzanine-users/LFhT0oryfEI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
mezzani...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
 
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/e0d65396-96ce-462b-acc7-796bed6d3088%40googlegroups.com.
For more options, 

RE: [mezzanine-users] Newbe question on Creating Custom Content

2019-05-07 Thread Eduardo Rivas
Hi Larry.

You’re correct; the tutorial assumes you’re comfortable writing Django 
applications. In this particular instance it assumes you have an app (a 
top-level directory, let’s call it “authors”) and you’d add the code to 
“authors/models.py” and “authors/admin.py”.

I recommend you go over the official Django tutorial where you’ll create an app 
called “polls” and learn how to modify its model and admin definitions. That 
knowledge will be essential when working with Mezzanine sites. Good luck!

From: lwat...@sc-guru.com
Sent: Tuesday, May 7, 2019 11:14 AM
To: Mezzanine Users
Subject: [mezzanine-users] Newbe question on Creating Custom Content

The tutorial says:
___

Creating Custom Content Types
In order to handle different types of pages that require more structured 
content than provided by the RichTextPage model, you can simply create your own 
models that inherit from Page. For example if we wanted to have pages that were 
authors with books:
from django.db import models
from mezzanine.pages.models import Page

# The members of Page will be inherited by the Author model, such
# as title, slug, etc. For authors we can use the title field to
# store the author's name. For our model definition, we just add
# any extra fields that aren't part of the Page model, in this
# case, date of birth.

class Author(Page):
dob = models.DateField("Date of birth")

class Book(models.Model):
author = models.ForeignKey("Author")
cover = models.ImageField(upload_to="authors")
Next you’ll need to register your model with Django’s admin to make it 
available as a content type. If your content type only exposes some new fields 
that you’d like to make editable in the admin, you can simply register your 
model using the mezzanine.pages.admin.PageAdmin class:
from django.contrib import admin
from mezzanine.pages.admin import PageAdmin
from .models import Author

admin.site.register(Author, PageAdmin)

Questions:
1) I assume the first block of code is a new .py file, called Author.py?  In 
what directory does it go?
2) The second block goes in some existing file? Which one?

I think the Tutorial assumes some knowledge of structure that I don't 
understand.

Thanks in advance for your help.

Larry
. 

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/00999e73-f3da-41e3-b161-f61d13f42031%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mezzanine-users/5cd1c140.1c69fb81.6421.aee2%40mx.google.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Moving information from the development area to production....

2019-03-24 Thread Eduardo Rivas
That's correct, production and development databases are not related at
all. What I usually do is create a dump of the dev DB and restore it on the
production server.

You'll also need to upload media files as those are separate as well.

On Sun, Mar 24, 2019, 11:48 AM Bobby Neal  wrote:

>
> Stupid question... I am assuming that there is no (elegant) way to export
> pages  that have been created in the dev environment to include them on a
> production site? I assume that this is against the grain of the intended
> workflow of django/mezzanine?
>
> For example... editing of the About page or other rich text pages... I
> assume the correct work flow is to edit the bones of the site in the dev
> environment... populate that information etc in the production environment?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Draft show up in View All Posts

2019-02-15 Thread Eduardo Rivas
Hi Bithja.

Admin users will always see all posts. Have you tried looking at the site 
without being logged in?

From: Bithja Feuersenger
Sent: Friday, February 15, 2019 12:07 PM
To: Mezzanine Users
Subject: [mezzanine-users] Draft show up in View All Posts


Hi all,

Is it normal for blog post drafts to show up on the site under View All 
Posts?Is there a way to avoid that?

Thank you!!
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Static files give 404 if debug == False

2019-01-11 Thread Eduardo Rivas
Hi Christer.

The collectstatic command is a Django concept, not something specific to
Mezzanine. Even though it requires more time, a strong foundation on Django
will make your time with Mezzanine much more productive.

When you use Django's dev server, it will look into the /static directory
inside each of your apps. In production, all static files should be served
from the top-level /static directory. You need to copy all files scattered
across the app directories into this central location, and that's what the
command does.

You need to make sure your production sever is routing the /static/ url of
your site to this top level /static folder. The nginx config included with
mezzanine does that by default.

On Fri, Jan 11, 2019, 8:30 AM Christer Enfors  I don't understand how the "collectstatic" stuff works. I have a static
> directory, and inside it there are files. But if I turn off debugging in
> settings.py, then the files inside static/ suddenly give me a 404, meaning
> I only get a very bare-bones page with no CSS, no images, etc. But the
> files are still there, in the static/ directory. It's as if it's looking in
> a different static/ depending on if debug is turned on or off.
>
> This would be a lot easier if I could find some documentation about
> Mezzanine *as a CMS* - the documentation I found is for programming
> extensions for it from what I can tell. And it's great that there's
> documentation for that, but that's not what I'm looking for right now.
>
> I suspect that I am supposed to learn Django to learn how this stuff
> works, and sure, I could do that. But I'd rather not, right now. I just
> want to use Mezzanine as a CMS.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] the www and non-www version of my deployment aredifferent

2018-10-30 Thread Eduardo Rivas
Mezzanine can serve different sites depending on the domain. You have two site 
records in your database, one for www and another for non-www. All content 
(pages, blog posts, etc) is independent from one site to the other. One site is 
probably empty (no content) and that’s why it looks weird when you view it.

If looks like you want to have a single site. I suggest you go to Sites in the 
admin sidebar and delete one domain. Next you’ll have to configure your public 
facing server (nginx, apache, etc) to redirect from the secondary domain to the 
primary one.

From: Amir
Sent: Tuesday, October 30, 2018 11:05 AM
To: Mezzanine Users
Subject: [mezzanine-users] the www and non-www version of my deployment 
aredifferent

Hey all

In the non-www version of my site, everything is okay. But when I enter the 
domain with www, I only see the right panel (which is a static code) and the 
footers. 
Everything that is derived from the database is not there.

When I log-in to admin panel, on the top bar I can choose between the available 
sites, when I choose the www version and I navigate to blogs, pages, etc, there 
are nothing there.

What is the problem? What have I done wrong?

Can it be due to the following line in local_settings.py??

"DOMAINS": ["myblog.com", "www.myblog.com"]
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Move the deployment to new VPS along withthecontents

2018-10-16 Thread Eduardo Rivas
Always happy to help :) And yes, Digital Ocean is a popular and tried host. You 
can also try Linode. The thing with VPS is you’re responsible for maintaining 
and updating the operating system. You could look into managed hosted solutions 
if you don’t want to do that.

The other option is to move to something like AWS, Azure, or Google Cloud 
Platform. In some configurations you only pay for resource usage (CPU, memory, 
disk) and they abstract away the server maintenance. Those tend to be more 
expensive though, and the deployment process would change significantly.

From: Amir
Sent: Tuesday, October 16, 2018 7:35 AM
To: Mezzanine Users
Subject: Re: [mezzanine-users] Move the deployment to new VPS along 
withthecontents

Eduardo, you are a valuable asset to the Mezzanine project. Thanx for being 
here. 
Do you have any recommendation for the VPS host? I am considering DigitalOcean.
I am a bit worried about the security stuff.

On Tuesday, October 16, 2018 at 5:52:37 PM UTC+3:30, Eduardo Rivas wrote:
You’ll need to create a database dump, copy it over to the new server, and 
restore it. If you’re using postgres the commands are pg_dump and pg_restore.
 
You’ll also need to move media files. I recommend you use rsync from one server 
to the other. The folder you want to copy is /static/media/uploads.
 
From: Amir
Sent: Tuesday, October 16, 2018 7:20 AM
To: Mezzanine Users
Subject: [mezzanine-users] Move the deployment to new VPS along with thecontents
 
Hello guys
I have deployed mezzanine to a VPS and now I want to move the whole project to 
a new VPS from another provider.
The deployment would not be of an issue, but how do I move the database and the 
contents from the previous VPS to the new one?
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-use...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
 
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Move the deployment to new VPS along with thecontents

2018-10-16 Thread Eduardo Rivas
You’ll need to create a database dump, copy it over to the new server, and 
restore it. If you’re using postgres the commands are pg_dump and pg_restore.

You’ll also need to move media files. I recommend you use rsync from one server 
to the other. The folder you want to copy is /static/media/uploads.

From: Amir
Sent: Tuesday, October 16, 2018 7:20 AM
To: Mezzanine Users
Subject: [mezzanine-users] Move the deployment to new VPS along with thecontents

Hello guys
I have deployed mezzanine to a VPS and now I want to move the whole project to 
a new VPS from another provider.
The deployment would not be of an issue, but how do I move the database and the 
contents from the previous VPS to the new one?
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Want to integrate a wiki?

2018-08-31 Thread Eduardo Rivas
Just my two cents:

- You could fork Mezzanine Wiki or contribute back to it to update it to 
support the latest version of Mezzanine.
- You can use Django apps and add them to your Mezzanine project, no need to 
abandon Mezzanine to use them.

From: John Whitmore
Sent: Friday, August 31, 2018 10:40 AM
To: Mezzanine Users
Subject: [mezzanine-users] Want to integrate a wiki?

I've been looking into mezzanine over the past number of weeks, when I get a 
chance. I wanted to integrate a wiki into my site but mezzanine-wiki isn't 
working for me and the last commit to that project was in 2014, so I assume 
it's more or less dead.

So how to fulfil this requirement? I guess I could try integrate a wiki of my 
own creation or perhaps the easiest solution is assembling a desperate 
collection of Django Apps and not use mezzanine. I'm not sure which way to 
proceed, any advice would be gratefully received
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Admin redirect not working

2018-08-27 Thread Eduardo Rivas
Make sure the URL you’re trying to redirect is not assigned to a Page or any 
view. The redirects will only kick in if the URL raises a 404.

From: Travis
Sent: Sunday, August 26, 2018 5:57 PM
To: Mezzanine Users
Subject: [mezzanine-users] Admin redirect not working

Anyone having issues with the admin redirects not working? A simple example on 
a fresh install like:
Redirect From: /about/team/ 
Redirect To: https://www.google.com/

should work right? Is there another setting I'm missing?
Any known issues?
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] deploying Mezzanine to a VPS

2018-08-17 Thread Eduardo Rivas
Fabric is compatible with Python 2 only.

Try pip install fabric3

On Fri, Aug 17, 2018, 11:13 AM Amir <7xm...@gmail.com> wrote:

> *I did, version Fabric==1.14.0 is now installed. Now that I issue fab
> secure, I get:*
>
> Traceback (most recent call last):
>>
>>   File "/home/amir/blogenv/bin/fab", line 7, in 
>>
>> from fabric.main import main
>>
>>   File "/home/amir/blogenv/lib/python3.6/site-packages/fabric/main.py",
>>> line 13, in 
>>
>> from operator import isMappingType
>>
>> ImportError: cannot import name 'isMappingType'
>>
>>
> On Friday, August 17, 2018 at 9:26:04 PM UTC+4:30, Eduardo Rivas wrote:
>>
>> Try using Fabric version 1: pip install -U “fabric<2”
>>
>>
>>
>> *From: *Kenneth L Bolton
>> *Sent: *Friday, August 17, 2018 10:42 AM
>> *To: *mezzani...@googlegroups.com
>> *Subject: *Re: [mezzanine-users] deploying Mezzanine to a VPS
>>
>>
>>
>>
>> https://groups.google.com/forum/#!searchin/mezzanine-users/fabric%7Csort:date/mezzanine-users/XZy6BGyr6Bo/zY_nEjmSBAAJ
>>
>>
>>
>> Amir <7xm...@gmail.com> writes:
>>
>>
>>
>> > *So I am finally done with the development, now I want to
>>
>> > deploy. *
>>
>> > *I have followed the instruction
>>
>> > in http://mezzanine.jupo.org/docs/deployment.html.*
>>
>> >
>>
>> > *I have configured local_settings.py. Next step says issue this
>>
>> > command:
>>
>> > fab secure *
>>
>> > *I did and I got: Command 'fab' not found, (I guess it must have
>>
>> > been
>>
>> > installed when I installed the mezzanine but it hasn't)*
>>
>> >
>>
>> > *So I installed fabric inside my project with the activated
>>
>> > virtual
>>
>> > environment using this command: pip install fabric*
>>
>> >
>>
>> > *after that again I entered: fab secure, which gives me this
>>
>> > error:*
>>
>> >
>>
>> > Traceback (most recent call last):
>>
>> >>
>>
>> >>   File "/home/amir/blogenv/bin/fab", line 11, in 
>>
>> >>
>>
>> >> sys.exit(program.run())
>>
>> >>
>>
>> >>   File
>>
>> >>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py",
>>
>> >>> line 324, in run
>>
>> >>
>>
>> >> self.parse_collection()
>>
>> >>
>>
>> >>   File
>>
>> >>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py",
>>
>> >>> line 408, in parse_collection
>>
>> >>
>>
>> >> self.load_collection()
>>
>> >>
>>
>> >>   File
>>
>> >>   "/home/amir/blogenv/lib/python3.6/site-packages/fabric/main.py",
>>
>> >>> line 73, in load_collection
>>
>> >>
>>
>> >> super(Fab, self).load_collection()
>>
>> >>
>>
>> >>   File
>>
>> >>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py",
>>
>> >>> line 599, in load_collection
>>
>> >>
>>
>> >> module, parent = loader.load(coll_name)
>>
>> >>
>>
>> >>   File
>>
>> >>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/loader.py",
>>
>> >>> line 76, in load
>>
>> >>
>>
>> >> module = imp.load_module(name, fd, path, desc)
>>
>> >>
>>
>> >>   File "/home/amir/blogenv/lib/python3.6/imp.py", line 235, in
>>
>> >>   load_module
>>
>> >>
>>
>> >> return load_source(name, filename, file)
>>
>> >>
>>
>> >>   File "/home/amir/blogenv/lib/python3.6/imp.py", line 172, in
>>
>> >>   load_source
>>
>> >>
>>
>> >> module = _load(spec)
>>
>> >>
>>
>> >>   File "", line 684, in _load
>>
>> >>
>>
>> >>   File "", line 665, in
>>
>> >>   _load_unlocked
>>
>> >>
>>
>> >>   File "", line 678, in
>>
>> >>   exec_module
>>
>> >>
>>
>> >>   File "", line 219, in
>>
>> >>> _call_with_frames_removed
>>
>> >>
>>
>> >>   File "/home/amir/blogenv/problog/fabfile.py", line 16, in
>>
>> >>   
>>
>> >>
>>
>> >> from fabric.api import abort, env, cd, prefix, sudo as
>>
>> >> _sudo, run as
>>
>> >>> _run, \
>>
>> >>
>>
>> >> ModuleNotFoundError: No module named 'fabric.api'
>>
>> >>
>>
>> >> What am I getting wrong here?
>>
>>
>>
>>
>>
>> --
>>
>> Ken Bolton
>>
>>
>>
>> --
>>
>> You received this message because you are subscribed to the Google Groups
>> "Mezzanine Users" group.
>>
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to mezzanine-use...@googlegroups.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] deploying Mezzanine to a VPS

2018-08-17 Thread Eduardo Rivas
Try using Fabric version 1: pip install -U “fabric<2”

From: Kenneth L Bolton
Sent: Friday, August 17, 2018 10:42 AM
To: mezzanine-users@googlegroups.com
Subject: Re: [mezzanine-users] deploying Mezzanine to a VPS

https://groups.google.com/forum/#!searchin/mezzanine-users/fabric%7Csort:date/mezzanine-users/XZy6BGyr6Bo/zY_nEjmSBAAJ

Amir <7xm...@gmail.com> writes:

> *So I am finally done with the development, now I want to 
> deploy. *
> *I have followed the instruction 
> in http://mezzanine.jupo.org/docs/deployment.html.*
>
> *I have configured local_settings.py. Next step says issue this 
> command: 
> fab secure *
> *I did and I got: Command 'fab' not found, (I guess it must have 
> been 
> installed when I installed the mezzanine but it hasn't)*
>
> *So I installed fabric inside my project with the activated 
> virtual 
> environment using this command: pip install fabric*
>
> *after that again I entered: fab secure, which gives me this 
> error:*
>
> Traceback (most recent call last):
>>
>>   File "/home/amir/blogenv/bin/fab", line 11, in 
>>
>> sys.exit(program.run())
>>
>>   File 
>>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py", 
>>> line 324, in run
>>
>> self.parse_collection()
>>
>>   File 
>>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py", 
>>> line 408, in parse_collection
>>
>> self.load_collection()
>>
>>   File 
>>   "/home/amir/blogenv/lib/python3.6/site-packages/fabric/main.py", 
>>> line 73, in load_collection
>>
>> super(Fab, self).load_collection()
>>
>>   File 
>>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/program.py", 
>>> line 599, in load_collection
>>
>> module, parent = loader.load(coll_name)
>>
>>   File 
>>   "/home/amir/blogenv/lib/python3.6/site-packages/invoke/loader.py", 
>>> line 76, in load
>>
>> module = imp.load_module(name, fd, path, desc)
>>
>>   File "/home/amir/blogenv/lib/python3.6/imp.py", line 235, in 
>>   load_module
>>
>> return load_source(name, filename, file)
>>
>>   File "/home/amir/blogenv/lib/python3.6/imp.py", line 172, in 
>>   load_source
>>
>> module = _load(spec)
>>
>>   File "", line 684, in _load
>>
>>   File "", line 665, in 
>>   _load_unlocked
>>
>>   File "", line 678, in 
>>   exec_module
>>
>>   File "", line 219, in 
>>> _call_with_frames_removed
>>
>>   File "/home/amir/blogenv/problog/fabfile.py", line 16, in 
>>   
>>
>> from fabric.api import abort, env, cd, prefix, sudo as 
>> _sudo, run as 
>>> _run, \
>>
>> ModuleNotFoundError: No module named 'fabric.api'
>>
>> What am I getting wrong here? 


-- 
Ken Bolton

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] New way to use custome templates

2018-08-15 Thread Eduardo Rivas
Hi Amir.

What do you find difficult about the process? Converting regular HTML to Django 
templates? Loading static files? Something Mezzanine-specific?

From: Amir
Sent: Wednesday, August 15, 2018 8:07 AM
To: Mezzanine Users
Subject: [mezzanine-users] New way to use custome templates

I recently downloaded a blog theme from 
https://colorlib.com/wp/free-blogger-templates/. I finally managed to customize 
and use it. But I am bleeding now. 
Seriously, is there no better way to easily change the template :|

I followed http://bitofpixels.com/blog/ instructions. Any Ideas? Any ongoing 
projects to facilitate this torturous process?
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Re: Multiple Blogs

2018-08-10 Thread Eduardo Rivas
Sorry, don’t have enough time to write a code sample right now, but here is a 
more detailed description of the steps:

- Create a new application with all the contents copied from mezzanine.blog. 
Let’s call it multiblog. Add it to installed apps.
- In models.py add a new Blog model inheriting from Slugged (this will give it 
a title and slug). Register it in the admin so you can add Blog instances.
- Add foreign keys to this new Blog model to BlogPost and BlogCategory, so each 
post and category will belong to one blog. Create the required migrations. Make 
sure you expose the FK field in the admin so each post and category can choose 
to which Blog they will belong to.
- Rewrite urls.py to account for the Blog slug. For example: “/blog/some-post” 
becomes “/blog/blog-slug/some-post”. The regex for the URL should capture the 
blog slug so it will be passed to the view.
- Rewrite views.py to account for the new blog slug, and modify the querysets 
to only look into the posts / categories for a particular blog. Something like 
BlogPost.objects.filter(blog__slug=).
- Optionally rewrite the template-finding logic in the view to allow you to use 
different (per-blog) templates. For example, you could have the view load 
templates by looking inside folders that match the blog slug, like 
“templates/blog//blog_post_detail.html” and 
“templates/blog//blog_post_list.html”.

Hope that helps!

From: Amir
Sent: Thursday, August 9, 2018 7:48 AM
To: Mezzanine Users
Subject: [mezzanine-users] Re: Multiple Blogs

This suggestion of yours is remarkable Eduardo and I am craving to have 
multiple and separated blogs. I am a bit new to Django though, Could you 
elaborate more on the details please? I could open a topic on StackOverflow if 
you would prefer. This would be a huge help bro. 

On Tuesday, March 3, 2015 at 6:33:33 AM UTC+3:30, Eduardo Rivas wrote:
Hello Dennis. I actually needed to do this for a project a few years ago. As 
far a I know, Mezzanine doesn't support multiple blogs out of the box. What I 
did was create a "Blog" model, which simply had a slug and title, and then add 
it as FK to the standard BlogPost and BlogCategory models. After that, it's 
just a matter of updating urls and views to account for a blog_slug parameter 
to get the correct Blog instance. If you want to get fancy, you can create 
"base" templates for each blog. That way, you get unique blog posts, categories 
and templates for each blog. You'll also need to modify the queries made by the 
Admin to only return the subset of BlogPost's that match a Blog instance in 
particular.

Important note: this of course implies you're "forking" Mezzanine's blog app, 
so you will have to maintain it by yourself and install it in place of the 
default one.
-- 
You received this message because you are subscribed to a topic in the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/mezzanine-users/LFhT0oryfEI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Recommendations for Bootstrap WYSIWYG editor?

2018-08-08 Thread Eduardo Rivas
I have achieved something similar using TinyMCE (the builtin editor). What I do 
is have the site CSS applied to editor. So if site editors want to build a grid 
with Bootstrap classes, they have to edit the markup, but can at least see how 
text and other images will appear in the grid.

To do this, you need to tell TinyMCE to load Bootstrap’s CSS files:
1. Create your own version of tinymce_setup.js. Put it in static/mezzanine/js 
in one of your apps and copy the contents from here: 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/core/static/mezzanine/js/tinymce_setup.js
2. Change the content_css option into an array (line 82). We want to include 
the base CSS and then add our own entries to the array. Something like: 
content_css: [window.__tinymce_css, ‘/path/to/bootstrap.css’]
3. Now TinyMCE should have Bootstrap styles applied. Clear your cache if you 
don’t see the changes applied.

Hope that helps!

From: Thomas Smith
Sent: Wednesday, August 8, 2018 2:25 PM
To: Mezzanine Users
Subject: [mezzanine-users] Recommendations for Bootstrap WYSIWYG editor?

I do a lot of work with Bootstrap. I recently began learning Mezzanine and it's 
working great.

However, I'm finding that in order to maintain the responsiveness of the sites 
I manage, I'm having to create custom page types and models in order to allow 
content managers to edit various responsive elements without messing up the 
responsiveness.

Maybe there's a better way to handle this (I am new to Mezzanine), but it seems 
logical to me that using a Bootstrap-aware editor would allow editing an entire 
responsive page without the need for new page types or models.

Can anyone offer suggestions for addressing this problem please?
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Implementing multiple blogs

2018-08-08 Thread Eduardo Rivas
You can add custom entries on the nav menu by adding pages of type “Link”. In 
the URL field enter the category slug, something like 
/blog/category/example-category/ (you can get the slug by manually browsing to 
the category and copying the URL).

From: Mr X
Sent: Wednesday, August 8, 2018 1:05 PM
To: Mezzanine Users
Subject: Re: [mezzanine-users] Implementing multiple blogs

Is it possible to register each category in the navbar?

On Friday, April 20, 2012 at 5:33:03 PM UTC+4:30, Stephen McDonald wrote:
I'd suggest using the blog categories to implement this.
On Fri, Apr 20, 2012 at 4:57 PM, Plaban Nayak  wrote:
Hi,

I was trying to figure out how can  I have two separate instances of
blog hosted at two separate urls in the same domain.

Say for example a company blog and a tech blog.


Any help ?




-- 
Stephen McDonald
http://jupo.org
-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Unable to deploy Mezzanine on Digital ocean.

2018-05-27 Thread Eduardo Rivas

Hello there 

I'm very sorry about all the trouble you've had with the deployment 
process. I know the feeling of spending days on a bug without progress. 
I hope you are able to deploy your site eventually.


I think the main cause of all trouble is the release of Fabric 2 just 18 
days ago (https://github.com/fabric/fabric/releases/tag/2.0.0). I'm not 
aware of the specifics related to this release, but a major version 
change might indicate that many things will break if not updated. The 
fabfile included with Mezzanine was written for Fabric 1 and Python 2. 
Mezzanine itself has been compatible with Python 3 for many years now, 
but the default deployment process assumes Python 2.


Besides that, I don't think deploying with rsync will work on Windows 
since no such command exists in Windows (though I'm unaware if a port 
exists and if you've installed it). I also develop on Windows and deploy 
with git without issue.


My advice to get this sorted would be:

- Destroy and rebuild your Droplet in DO.

- Do not create a new user on the droplet, you only need the root user 
for the deployment process. A non-root user will be created for you if 
you follow the deployment tutorial. In fact you only need to SSH into 
your Droplet once to change the root password. You don't need to install 
system nor Python dependencies.


- Create a new git repository in your development machine and commit all 
relevant files to it. In local_settings.py change the deployment method 
to git.


- Install Fabric 1 with: pip install -U "fabric<2" (quotes are important 
when specifying versions to pip)


- Assuming you installed Mezzanine from pip, you may not have the latest 
version of the fabfile on your system. Go to 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/project_template/fabfile.py 
and replace your local fabfile with that.


- Follow the Deployment tutorial (Case 1). 
http://mezzanine.jupo.org/docs/deployment.html#case-1-deploying-to-a-brand-new-server


If you encounter any other issues, I'd be happy to help troubleshoot 
further. Please include your Mezzanine, Django, Fabric, and Python 
versions, as well as full tracebacks of the errors you're seeing, and 
the details of your droplet.


Finally, I would like to remind you Mezzanine is built and maintained by 
a community of volunteers. If the software is making you upset and you 
come here looking for help, the least you can do is assume the 
volunteers who wrote Mezzanine and who are going to help you out have 
good intentions. We are not wasting your time, we are not responsible 
for the changes in the tools we depend on (like Fabric), we have zero 
obligation to help you develop and deploy a website (yet, we will gladly 
do it as we've done many times in the past for others). If you've found 
a bug in the code or an error in the docs, report it without parading 
how broken or outdated things are. Thanks! :)



On 2018-05-27 9:10 AM, Data Intelligence wrote:

Hey Eduardo,
I am aware your comment was years ago, but I suggest editing it 
because the instructions given on the mezzanine site DO NOT work, so I 
suggest either updating them or taking them off all together as to 
keep others from wasting time.

What I mean by DO NOT WORK is this:
1- Mezzanine is not compatible with python 3
2- The dependencies it supposedly automatically installs ARE NOT 
compatible with each other meaning:
3- Fabric that is installed is not compatible with the fabfile.py that 
is generated.
4- When you get done with all that and the days it takes to figure 
that out and you get to run

5- NOT SO FAB ALL you end up with:
6- "[localhost] local: rsync  --exclude "*.pyc" --exclude "*.pyo" 
--exclude "*.db" --exclude ".DS_Store" --exclude ".coverage" --exclude 
"local_settings.py" --exclude "/static" --exclude "/.git" --exclude 
"/.hg" -pthrvz  --rsh='ssh  -p 22 ' C:\Users\~\blog_iq\ 
u...@xxx.xx.xxx.xx:/home/user/mezzanine/blog_iq

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1292) 
[Receiver=3.1.2]


7- So after weeks of trying I no longer have the patience for outdated 
instructions- SO please either update your instructions or ADD a note 
at the beginning listing the exact version of the dependencies and 
even better yet the PYTHON VERSION to begin with.


Don't you agree???

On Monday, March 28, 2016 at 1:54:48 PM UTC-7, Eduardo Rivas wrote:

Thanks Adam. I see you went with Digital Ocean's tutorials. Did
you try
the one in Mezzanine's docs? It should work with a completely blank
Ubuntu VPS.

http://mezzanine.jupo.org/docs/deployment.html#tutorial
<http://mezzanine.jupo.org/docs/deployment.html#tutorial>

The fabfile should handle not only installing the Mezzanine
project, but
all system-level dependencies. The Postgres DB, gunicorn, ngnix,
memcache, 

Re: [mezzanine-users] Re: What's wrong in my local_settings / how to do basic deploy to aws

2018-04-23 Thread Eduardo Rivas

Hi Wolfgang.

Production and development databases are kept separate, as well as media 
uploads. If you'd like to upload your database and media files from dev 
to prod you can add custom fabric tasks that do so.



On 2018-04-23 1:13 PM, Wolfgang M wrote:


You were perfectly right Christian. I needed the ssh_user:ubuntu and 
ssh_key_path settings in my fabric local_settings. Also Amazon Linux 
is RHEL based and uses yum not apt-get.



Those changes allowed me to run fab all.


I have some more questions about content deployment since after my 
deploy I thought it hadn't worked as my local edits weren't deployed. 
I'll try and sort that out on a relevant thread.


On Friday, April 20, 2018 at 2:34:53 AM UTC-5, Christian Hoffmann wrote:

Perhaps better try Ubuntu 16.04 AMI for your first deployment. --
Christian

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Modifying behavior of TimeStamped `updated` timestamp for subclasses

2018-04-13 Thread Eduardo Rivas
Haven't tried this but I think it should work. It is an extra DB table 
but doesn't require monkey patching anything and it can leave in its own 
app:


Create a new model called LastUpdate or TimeStamp, with a datetime field 
and a generic relation 
 
to any model. Then use signals attached to the models you're interested 
in to update_or_create LastUpdate instances when a model is saved 
according to your criteria.


Now you should have a reverse relation in BlogPost (and any model you 
want) to get the LastUpdate instance. If that doesn't work you should 
still be able to filter LastUpdate instances by ContenType and PK.



On 2018-04-13 10:33 AM, Chris Hawes wrote:
I want to display a timestamp on each BlogPost showing when the post 
was last updated. My first attempt at this was to just show the 
`updated` timestamp from the TimeStamped superclass. However, this 
timestamp is bumped up every time the post is saved for any reason. 
For instance if a user adds a comment, BlogPost gets saved in order to 
update its comment_count field, and `updated` gets bumped as a result. 
That's no good.


I also have two other RichText-TimeStamped classes that require 
similar functionality. Since I own those classes, the obvious thing 
would be to make an abstract superclass that adds a new modified 
timestamp field and updates it appropriately on save.


But what do I do about BlogPost? I don't own it so my options are 
limited, and I am struggling to come up with a nice way to handle it.


  * I could add a field through EXTRA_MODEL_FIELDS and monkey patch
BlogPost.save() to update it. But I would prefer to use the same
logic for the other two classes as for BlogPost.
  * I could monkey patch TimeStamped.save(), but would have to put a
super ugly hack so that it only affects the 3 subclasses that I
care about.
  * Subclassing BlogPost might be an option, but it would create a new
table, which is not fun, plus I already have a bunch of existing
blog posts so I'm not sure offhand what I'd do about those.

I am wondering if anyone has a better idea? Is there a nice way to 
handle cases like this that I am missing?

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Providers

2018-02-15 Thread Eduardo Rivas

Hello Fabio.

Pretty much any VPS provider is suitable to deploy Mezzanine sites with 
the default fabfile. This includes Digital Ocean, Linode, Vultr, etc. 
Here's the official tutorial: http://mezzanine.jupo.org/docs/deployment.html


Other than that you can deploy Mezzanine anywhere that will let you spin 
up a wsgi server, filesystem, and a database (so AWS and Azure are also 
options). You'll need to figure out the deployment process yourself, though.


The latest commit to Mezzanine was done 4 days ago: 
https://github.com/stephenmcd/mezzanine/



On 2018-02-15 6:22 PM, Fabio wrote:

I would like to test Mezzanine on a hosting but I can't find providers who 
supports Django.

Which providers you suggest me to use for test Mezzanine ?

When Mezzanine has been updated last time ?



--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Database not populated using Fabric deploy

2018-01-18 Thread Eduardo Rivas

Hello!

The fabfile assumes your test database contains data not suitable for 
production. You will need to manually dump and restore your DB in the 
production server if you want to transfer your development data. My 
suggestion is you create your own Fabric task to automate the process if 
this is something you'll need to do often.


As for the migrations, they are automatically run on first deploy, so 
unless you've created new migrations, nothing will be applied when 
running "migrate". What you have in production is a database with all 
tables and columns created but no rows.


Hope that helps :)


On 2018-01-18 5:40 PM, rwr.r...@gmail.com wrote:

Hi all

I'm brand new to Mezzanine, but not to Django.

I created a test mezzanine project and it runs perfectly on loclhost. 
It's a default project with the provided sample data, no mods at all.


I deployed the project to a fresh Linode Debian Stretch server using 
'fab secure' and then 'fab all'. Everything seemed to work perfectly, 
I can hit the site and see the Mezzanine homepage no problem. But it 
doesn't seem to have populated the database on the server at all. I'm 
using postgres and can see, using psql, that the project database was 
created. I also can't login into the admin page of the site. Again, I 
believe this is simply because database wasn't populated. All of the 
project log files on the server are empty.


I also ran 'fab deploy' and it seemed to work but tells me there were 
no migrations to apply. I also ran 'python manage.py migrate', which 
also reported no migrations to apply.


What information can I provide to help understand what's going on 
here. Or, is there just something, some step maybe, that I missed?


Thanks in advance for ny help.
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Question regarding fab deploy using rsync and file deletion

2018-01-12 Thread Eduardo Rivas

Hi Pat.

I'm the person who implemented rsync deployments and didn't even know it 
has a delete option! Please go ahead and submit a PR, it sounds like a 
genuine improvement.



On 2018-01-11 10:59 AM, Pat James wrote:
I deleted a template file, did a fab deploy via rsync, and found that 
the deletion did not propagate.


I manually deleted the file in production and all was well, but I try 
to minimize the need to manually manipulate my production environments.


I see that Fabric's rsync_project() function has an option to add the 
--delete flag for rsync, but that is not present in the standard 
Mezzanine fabfile.py


Is this something that is by design, and I should just modify the 
fabfile to suit my needs here, or is this an oversight/bug worthy of a 
minor pull request?


-Pat
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Where can I view my Mezzanine project's data tables?

2018-01-02 Thread Eduardo Rivas
Hi Tom.

If you configured postgres as your database backend, you can use pgAdmin or
any other viewer to access your tables.

If you started a Mezzanine project and didn't change the database
configuration, you're probably using a sqlite database. This is just a
regular file in your project folder, should be named dev.db. I don't know
of any tools to view those, but I recommend you search online for "sqlite
viewer" or something of that sort.

On Jan 2, 2018 5:44 PM, "Tom Tanner"  wrote:

When I made my Mezzanine project, I used `python manage.py createdb
--noinput` when making the database. How do I view the database and its
tables from a GUI? For instance, pgAdmin, if the database was made in
PostgreSQL?

-- 
You received this message because you are subscribed to the Google Groups
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Do I redirect to home page using `home_slug`?

2017-11-23 Thread Eduardo Rivas
Where a are you importing "redirect" from?

On Nov 23, 2017 1:21 PM, "Tom Tanner" <dontsendemailher...@gmail.com> wrote:

> I believe it's `redirect()`. When I replace `home_slug()` with `'/'`, I
> get the same error.
>
> Full trace...
>
> Internal Server Error: /register/
> Traceback (most recent call last):
>   File "/home/myLinuxUsername/project/local/lib/python2.7/
> site-packages/django/core/handlers/exception.py", line 42, in inner
> response = get_response(request)
>   File "/home/myLinuxUsername/project/local/lib/python2.7/
> site-packages/django/core/handlers/base.py", line 249, in
> _legacy_get_response
> response = self._get_response(request)
>   File "/home/myLinuxUsername/project/local/lib/python2.7/
> site-packages/django/core/handlers/base.py", line 187, in _get_response
> response = self.process_exception_by_middleware(e, request)
>   File "/home/myLinuxUsername/project/local/lib/python2.7/
> site-packages/django/core/handlers/base.py", line 185, in _get_response
> response = wrapped_callback(request, *callback_args, **callback_kwargs
> )
>   File "/home/myLinuxUsername/project/product_blog/theme/views.py", line
> 48, in register
> return redirect('/')
> TypeError: 'str' object is not callable
>
>
>
> On Wednesday, November 22, 2017 at 11:50:04 PM UTC-5, Eduardo Rivas wrote:
>>
>> Can you show us what function is raising the exception? Is it home_slug,
>> or redirect? What happens if you use: return redirect("/") ?
>>
>> On 2017-11-22 7:59 PM, Tom Tanner wrote:
>>
>> In one of my views, I have this:
>>
>> from mezzanine.utils.urls import home_slug
>>
>> def myView(request):
>>   # Some code...
>>   return redirect(home_slug())
>>
>>
>> This gives me the error: `TypeError: 'str' object is not callable`. Am I
>> supposed to use `home_slug()` to redirect to home page in this case? If
>> not, how else do I redirect to the home page? I have not touched/edited the
>> urlpattern for the default home page in `urls.py`.
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Mezzanine Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to mezzanine-use...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Do I redirect to home page using `home_slug`?

2017-11-22 Thread Eduardo Rivas
Can you show us what function is raising the exception? Is it home_slug, 
or redirect? What happens if you use: return redirect("/") ?



On 2017-11-22 7:59 PM, Tom Tanner wrote:

In one of my views, I have this:

|
frommezzanine.utils.urls importhome_slug

defmyView(request):
# Some code...
returnredirect(home_slug())
|

This gives me the error: `TypeError: 'str' object is not callable`. Am 
I supposed to use `home_slug()` to redirect to home page in this case? 
If not, how else do I redirect to the home page? I have not 
touched/edited the urlpattern for the default home page in `urls.py`.

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Thumbnail generation failing silently

2017-11-03 Thread Eduardo Rivas

Hello Iain.

This is an issue that has been fixed on the master branch: 
https://github.com/stephenmcd/mezzanine/issues/1781



On 2017-11-03 11:18 AM, Iain Mac Donald wrote:

On Fri, 3 Nov 2017 15:42:49 +
Iain Mac Donald  wrote:


Both the dev and production machines have previous installs of
Mezzanine which create thumbnails just fine (installed a few months
back).

Hmmm, I went back to the version of Pillow used in these previous
installs (version 3.0.0) and everything just worked. No other system
changes. I haven't tried any other versions of Pillow between 3.0.0 and
4.3.0.

If no one else has experienced this problem it might be an oddity on my
machines. Although both are running a pretty standard Debian Stretch
install.



--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] delete_model method doesn't exist in the PageAdmin class. How do something when delete page?

2017-10-19 Thread Eduardo Rivas
When overriding methods you should call super(), not the methods 
directly on parent classes. super() will resolve the method order 
correctly, and in this case it'll call delete_model() all the way back 
in ModelAdmin, which is the base class of PageAdmin.


Here's an example on how to call super() on save_model() 
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model



On 2017-10-19 1:29 PM, Rainell Dilou Gómez wrote:

Hello everyone
I tried to override "RichTextPageAdmin" to use the /save_model/ and 
/delete_model/ methods when creates or deleted RichText type pages. 
The code would be something like this


|
classRichTextPageAdmin(PageAdmin):

defdelete_model(self,request,obj):
# do something
returnPageAdmin.delete_model(self,request,obj)

defsave_model(self,request,obj,form,change):
# do something
returnPageAdmin.save_model(self,request,obj,form,change)

ifRichTextPageinadmin.site._registry:
    admin.site.unregister(RichTextPage)
admin.site.register(RichTextPage,RichTextPageAdmin)
|

So, when I saw that the test worked only with the save_model method, I 
noticed that the delete_model method does not exist in the PageAdmin 
class.
So I'm wondering, how can I execute a code when a RichText type page 
is deleted?

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Trying to make a section of my site that's like Blog Posts

2017-10-14 Thread Eduardo Rivas
Well, at this point it is up to you to determine the absolute url of 
each object. Since we don't know what fields your model has, and what 
views are supposed to serve it, we can't say for sure what the url 
should be.


In general, all objects inheriting from Displayable will have a slug 
field, which is ideal for generating urls. In that case, 
get_absolute_url() can return reverse("your_url_name", kwargs={"slug": 
self.slug}).


Of course, for this to work you'll need to create the view that serves 
the object and register it under a named urlpattern.



On 2017-10-13 5:18 PM, Tom Tanner wrote:
OK, I've gotten more done after watching your video and going over the 
Django tutorials covering `admin.py`. My `admin.py` looks like this 
now. I renamed the classes...:


|
from __future__ import unicode_literals

from copy import deepcopy

from django.contrib import admin
from django.utils.translation import ugettext_lazy as _

from .models import ProjectLinkPage, ProjectCategory

# Register your models here.

admin.site.register(ProjectLinkPage)
admin.site.register(ProjectCategory)
|

So now "Project links" appears in the admin page lefthand side. When I 
add a new project link, then try to view it on site, I get an error 
saying:

|
NotImplementedError: The model ProjectLinkPage does not have 
get_absolute_url defined


|

I will add a `get_absolute_url()` method to my `ProjectLinkPage` 
class. But here's the thing. I want this Projects Page to have links 
to different, customized pages. One of the links on the Projects Page 
could go to an HTML file that has an interactive map on it. Looking at 
`get_absolute_url()` in Mezzanine's BlogPost class, I'm unsure how I'd 
edit ProjectLinksPage's `get_absolute_url()` to do what I want. Any 
tips? Examples of other custom-made `get_absolute_url()` methods? Or 
maybe I'm looking at this all wrong?



On Wednesday, October 11, 2017 at 9:15:13 PM UTC-4, Eduardo Rivas wrote:

Also (and I know I've posted this a ton lately, but I think it's
relevant) here's a talk describing the general steps I follow when
building apps for Mezzanine:
https://www.youtube.com/watch?v=yVAmMXES2EU
<https://www.youtube.com/watch?v=yVAmMXES2EU>

It touches on how to uses Mezzanine's models, admin, and template
utilities.


On 2017-10-11 7:08 PM, Eduardo Rivas wrote:


Hi Tom.

You need to register your model in the admin. You can use
mezzanine.blog.admin as an example:
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/admin.py

<https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/admin.py>.

This admin configuration is a bit complex, so I recommend you
become familiar with Django's admin in general before diving into
it. Have you completed the official Django tutorial? It should
introduce you to all these concepts:
https://docs.djangoproject.com/en/1.11/intro/tutorial01/
<https://docs.djangoproject.com/en/1.11/intro/tutorial01/>


On 2017-10-11 7:02 PM, Tom Tanner wrote:


Hey all,

When I go to the Admin section of my site, I see the "Blog
posts" under "Content" on the left. I want to make a new
"Content" section called "Projects." It would be similar to a
page of blog posts. But I'm not sure how to start doing this.

Here's what my app's `models.py` looks like.

|
from__future__ importunicode_literals


fromdjango.db importmodels
fromdjango.core.urlresolvers importreverse
fromdjango.utils.translation importugettext_lazy as_


frommezzanine.conf importsettings
frommezzanine.core.fields importFileField
frommezzanine.core.models importDisplayable,Ownable,RichText,Slugged
frommezzanine.generic.fields importCommentsField,RatingField
frommezzanine.utils.models importAdminThumbMixin,upload_to


# Create your models here.


classProjectsPage(Displayable):
'''
 A page representing the format of the page that
 has links to standalone, project projects
 '''


 categories =models.ManyToManyField("ProjectCategory",
 verbose_name=_("Categories"),
 blank=True,related_name="projectposts")
 allow_comments =models.BooleanField(verbose_name=_("Allow
comments"),
default=True)
 comments =CommentsField(verbose_name=_("Comments"))
 featured_image =FileField(verbose_name=_("Featured Image"),
 upload_to=upload_to("project.ProjectPost.featured_image","project"),
 format="Image",max_length=255,null=True,blank=True)
 related_posts =models.ManyToManyField("self",
 verbose_name=_("Related posts"),blank=True)
 admin_thumb_field ="featured_image"


classMeta:
   verbose_name=_("Project link")
   verbose_name_plural=_(&qu

Re: [mezzanine-users] Re: Send a message to admin from the save method in a Displayable model

2017-10-14 Thread Eduardo Rivas
If that's the case you may want to override response_change() instead. 
This method is quite complex and determines which message to display 
depending on what action the user just triggered (save, save and 
continue, save and add new, etc). 
https://docs.djangoproject.com/en/1.11/_modules/django/contrib/admin/options/#ModelAdmin.response_change



On 2017-10-14 8:30 AM, Rainell Dilou Gómez wrote:

I have changed


|returnDisplayableAdmin.message_user(request,_("My custome 
message."),messages.WARNING|


by

|
||returnself.message_user(request,_("My custome 
message."),messages.WARNING)||

|

My custom message (WARNING) is now displayed, but also the predefined 
Mezzanine message (SUCCESS), both are displayed, as shown in the 
following image






Il giorno venerdì 13 ottobre 2017 22:36:13 UTC+2, Rainell Dilou Gómez 
ha scritto:


Hello everyone,
I need send a message to admin from the /save/ /method/ in a
/model/, something like that:

|
classMyModel(Displayable,Ownable,RichText):

# some field

defsave(self,*args,**kwargs):

# do something

# set the message to be displayed

super(MyModel,self).save(*args,**kwargs)
|

Then, in the admin, the message should be displayed when the form
is sent (save).

I have done a test after having read documentation, questions on
stackoverflow.com , etc. The test
doesn't generate errors during the execution but I don't get the
result I want, the default Mezzanine message is still displayed,
my custom message isn't displayed.
The code of my test would look like that:

|
fromdjango.db importmodels
fromdjango.utils.translation importugettext_lazy as_
frommezzanine.core.models importDisplayable,Ownable,RichText

fromdjango.contrib importmessages
fromdjango.test importRequestFactory
fromdjango.contrib.messages.storage.fallback importFallbackStorage

defcreate_request(url):
    factory =RequestFactory()
    request =factory.get(url)
    setattr(request,'session','session')
    messages =FallbackStorage(request)
    setattr(request,'_messages',messages)
returnrequest

classMyModel(Displayable,Ownable,RichText):

# some field

defsave(self,*args,**kwargs):

# do something

        url ="/admin/path_to/the_instance/%s/change/"%self.id
        request =create_request(url)
        messages.error(request,_("My custom message."))
|

As I said earlier, this does not generate errors, but the message
is not displayed.
Please, how can I do it?

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Send a message to admin from the save method in a Displayable model

2017-10-13 Thread Eduardo Rivas
I would recommend you move this logic to the admin view, where the 
request is going to be available at all times. Specifically, you should 
register your own admin class and override the save_model() method, as 
described here: 
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model. 
Don't forget to call super() to actually save the model instance before 
your custom logic!


Also, keep in mind ModelAdmin provides message_user() as a convenience 
to display messages in the admin. 
https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.message_user


On 2017-10-13 2:36 PM, Rainell Dilou Gómez wrote:

Hello everyone,
I need send a message to admin from the /save/ /method/ in a /model/, 
something like that:


|
classMyModel(Displayable,Ownable,RichText):

# some field

defsave(self,*args,**kwargs):

# do something

# set the message to be displayed

super(MyModel,self).save(*args,**kwargs)
|

Then, in the admin, the message should be displayed when the form is 
sent (save).


I have done a test after having read documentation, questions on 
stackoverflow.com, etc. The test doesn't generate errors during the 
execution but I don't get the result I want, the default Mezzanine 
message is still displayed, my custom message isn't displayed.

The code of my test would look like that:

|
fromdjango.db importmodels
fromdjango.utils.translation importugettext_lazy as_
frommezzanine.core.models importDisplayable,Ownable,RichText

fromdjango.contrib importmessages
fromdjango.test importRequestFactory
fromdjango.contrib.messages.storage.fallback importFallbackStorage

defcreate_request(url):
    factory =RequestFactory()
    request =factory.get(url)
    setattr(request,'session','session')
    messages =FallbackStorage(request)
    setattr(request,'_messages',messages)
returnrequest

classMyModel(Displayable,Ownable,RichText):

# some field

defsave(self,*args,**kwargs):

# do something

        url ="/admin/path_to/the_instance/%s/change/"%self.id
        request =create_request(url)
        messages.error(request,_("My custom message."))
|

As I said earlier, this does not generate errors, but the message is 
not displayed.

Please, how can I do it?
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Trying to make a section of my site that's like Blog Posts

2017-10-11 Thread Eduardo Rivas
Also (and I know I've posted this a ton lately, but I think it's 
relevant) here's a talk describing the general steps I follow when 
building apps for Mezzanine: https://www.youtube.com/watch?v=yVAmMXES2EU


It touches on how to uses Mezzanine's models, admin, and template utilities.


On 2017-10-11 7:08 PM, Eduardo Rivas wrote:


Hi Tom.

You need to register your model in the admin. You can use 
mezzanine.blog.admin as an example: 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/admin.py.


This admin configuration is a bit complex, so I recommend you become 
familiar with Django's admin in general before diving into it. Have 
you completed the official Django tutorial? It should introduce you to 
all these concepts: 
https://docs.djangoproject.com/en/1.11/intro/tutorial01/



On 2017-10-11 7:02 PM, Tom Tanner wrote:


Hey all,

When I go to the Admin section of my site, I see the "Blog posts" 
under "Content" on the left. I want to make a new "Content" section 
called "Projects." It would be similar to a page of blog posts. But 
I'm not sure how to start doing this.


Here's what my app's `models.py` looks like.

|
from__future__ importunicode_literals


fromdjango.db importmodels
fromdjango.core.urlresolvers importreverse
fromdjango.utils.translation importugettext_lazy as_


frommezzanine.conf importsettings
frommezzanine.core.fields importFileField
frommezzanine.core.models importDisplayable,Ownable,RichText,Slugged
frommezzanine.generic.fields importCommentsField,RatingField
frommezzanine.utils.models importAdminThumbMixin,upload_to


# Create your models here.


classProjectsPage(Displayable):
'''
 A page representing the format of the page that
 has links to standalone, project projects
 '''


 categories =models.ManyToManyField("ProjectCategory",
 verbose_name=_("Categories"),
 blank=True,related_name="projectposts")
 allow_comments =models.BooleanField(verbose_name=_("Allow comments"),
default=True)
 comments =CommentsField(verbose_name=_("Comments"))
 featured_image =FileField(verbose_name=_("Featured Image"),
 upload_to=upload_to("project.ProjectPost.featured_image","project"),
 format="Image",max_length=255,null=True,blank=True)
 related_posts =models.ManyToManyField("self",
 verbose_name=_("Related posts"),blank=True)
 admin_thumb_field ="featured_image"


classMeta:
   verbose_name=_("Project link")
   verbose_name_plural=_("Project links")
   ordering=("-publish_date",)




classProjectCategory(Slugged):
'''
 A category for grouping project links into a series
 '''


classMeta:
   verbose_name=_("Project Category")
   verbose_name_plural=_("Project Categories")
   ordering=("title",)
|
I basically copied a section of `mezzanine/blog/models.py`.

But "Projects" won't show up in my Admin menu. What am I doing wrong?
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, 
send an email to mezzanine-users+unsubscr...@googlegroups.com 
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.

For more options, visit https://groups.google.com/d/optout.




--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Trying to make a section of my site that's like Blog Posts

2017-10-11 Thread Eduardo Rivas

Hi Tom.

You need to register your model in the admin. You can use 
mezzanine.blog.admin as an example: 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/admin.py.


This admin configuration is a bit complex, so I recommend you become 
familiar with Django's admin in general before diving into it. Have you 
completed the official Django tutorial? It should introduce you to all 
these concepts: https://docs.djangoproject.com/en/1.11/intro/tutorial01/



On 2017-10-11 7:02 PM, Tom Tanner wrote:


Hey all,

When I go to the Admin section of my site, I see the "Blog posts" 
under "Content" on the left. I want to make a new "Content" section 
called "Projects." It would be similar to a page of blog posts. But 
I'm not sure how to start doing this.


Here's what my app's `models.py` looks like.

|
from__future__ importunicode_literals


fromdjango.db importmodels
fromdjango.core.urlresolvers importreverse
fromdjango.utils.translation importugettext_lazy as_


frommezzanine.conf importsettings
frommezzanine.core.fields importFileField
frommezzanine.core.models importDisplayable,Ownable,RichText,Slugged
frommezzanine.generic.fields importCommentsField,RatingField
frommezzanine.utils.models importAdminThumbMixin,upload_to


# Create your models here.


classProjectsPage(Displayable):
'''
 A page representing the format of the page that
 has links to standalone, project projects
 '''


 categories =models.ManyToManyField("ProjectCategory",
 verbose_name=_("Categories"),
 blank=True,related_name="projectposts")
 allow_comments =models.BooleanField(verbose_name=_("Allow comments"),
default=True)
 comments =CommentsField(verbose_name=_("Comments"))
 featured_image =FileField(verbose_name=_("Featured Image"),
 upload_to=upload_to("project.ProjectPost.featured_image","project"),
 format="Image",max_length=255,null=True,blank=True)
 related_posts =models.ManyToManyField("self",
 verbose_name=_("Related posts"),blank=True)
 admin_thumb_field ="featured_image"


classMeta:
   verbose_name=_("Project link")
   verbose_name_plural=_("Project links")
   ordering=("-publish_date",)




classProjectCategory(Slugged):
'''
 A category for grouping project links into a series
 '''


classMeta:
   verbose_name=_("Project Category")
   verbose_name_plural=_("Project Categories")
   ordering=("title",)
|
I basically copied a section of `mezzanine/blog/models.py`.

But "Projects" won't show up in my Admin menu. What am I doing wrong?
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] How to use mezzanine.forms?

2017-10-11 Thread Eduardo Rivas

Hello Rainell.

mezzanine.forms is not a like django.forms. mezzanine.forms is meant for 
admin users to create forms from the admin. It is basically a "form 
builder" for your end users.


To use it make sure it is in you INSTALLED_APPS and in the admin create 
a new page of type "Form". When editing that page you'll see the inlines 
that allow users to create their custom forms.



On 2017-10-11 10:10 AM, Rainell Dilou Gómez wrote:

Hello everyone,
in the project that I am doing I will start working with forms. I know 
what I can and should do if I work with django.forms, and I suppose 
mezzanine.forms can help me even more, but how? In the Mezzanine 
documentation there are no explanations and examples on how to use 
mezzanine.forms.
Can anyone tell me where to find explanations and examples about using 
mezzanine.forms?

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Custom content type extending Displayable accessing in template

2017-10-06 Thread Eduardo Rivas
Also, here's I talk I gave regarding how to leverage Mezzanine to 
display content types using Displayable instead of Page. It might be 
useful for what you're building: https://www.youtube.com/watch?v=yVAmMXES2EU



On 2017-10-06 2:33 PM, Eduardo Rivas wrote:


Access to model fields is the same in Python and in templates:

{{ my_model.title }} {# This comes from Displayable #}
{{ my_model.some_other_field }}

Now, you might be asking how to get "my_model" into the template 
context to begin with. The answer is to write a view that does it:


from django.shortcuts import render

def my_model_detail_view(request):
    context = {
    "my_model": MyModel.objects.get(...),
    }
    render(request, "my_template.html", context)

Regarding the blog posts, there's already a template tag that can 
fetch you recent posts:


{% load blog_tags %}
{% blog_recent_posts limit=3 as recent_posts %}
{% for post in recent_posts %}
...
{% endfor %}

I suggest you take a look at the source for this tag to see how 
Mezzanine handles it: 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/templatetags/blog_tags.py#L57



On 2017-10-06 2:24 PM, Hamza Jutt wrote:

Hello *Eduardo*!

*Thanks* for the detailed answer.

Now here is the thing When I said that I was extending from 
*Displayable *That was supposed to mean that I'm inheriting abstract 
model in my Custom content type. I can create items in database using 
*admin-site *and I've know a hefty amount about Django ORM. I know 
what displayable provides in that case. But what I was hoping for a 
similar method to access data in django template as in Docs You can 
access data of custom fields in model extended from *Page.*


|
{{page.some_model.title }}
{{page.some_model.slug }}
{{page.some_model.custom_field }}
|
What I got from your answer is there is no way to access data in 
django template of model which is inheriting Displayable as it is not 
in context. Only way to get that data is to use custom urls, views 
and templates. It's like just getting some basics but implement 
almost everything to get data from db (on url parameters or 
something). Then pass it as context to template response along with 
django template just like Blog.


Actually Our old app uses mezzenine but inherits everything from 
*Page*. And using that we can easily access data using page in 
context in django template. But that does seems wrong to create 
everything as page. But what I understood that If I were to fix it I 
will have to write all those urls and views by myself.


If I understood something wrong please help. Also I do have another 
question so if I have model inheriting *Displayable* and now I need 
info from that model in pages other that specific pages provided by 
custom urls and views. how would I do it. For *Example* I need 3 
recent blog posts on home page. So how would I access them. Would I 
have to write custom View for Home page and if so then I'm just 
overriding Home page default view as it is *RichTextPage* at this point.


If anything seems confusing I would be happy to provide further 
information.


Help is highly appreciated.

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, 
send an email to mezzanine-users+unsubscr...@googlegroups.com 
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.

For more options, visit https://groups.google.com/d/optout.




--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Custom content type extending Displayable accessing in template

2017-10-06 Thread Eduardo Rivas

Access to model fields is the same in Python and in templates:

{{ my_model.title }} {# This comes from Displayable #}
{{ my_model.some_other_field }}

Now, you might be asking how to get "my_model" into the template context 
to begin with. The answer is to write a view that does it:


from django.shortcuts import render

def my_model_detail_view(request):
    context = {
    "my_model": MyModel.objects.get(...),
    }
    render(request, "my_template.html", context)

Regarding the blog posts, there's already a template tag that can fetch 
you recent posts:


{% load blog_tags %}
{% blog_recent_posts limit=3 as recent_posts %}
{% for post in recent_posts %}
...
{% endfor %}

I suggest you take a look at the source for this tag to see how 
Mezzanine handles it: 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/templatetags/blog_tags.py#L57



On 2017-10-06 2:24 PM, Hamza Jutt wrote:

Hello *Eduardo*!

*Thanks* for the detailed answer.

Now here is the thing When I said that I was extending from 
*Displayable *That was supposed to mean that I'm inheriting abstract 
model in my Custom content type. I can create items in database using 
*admin-site *and I've know a hefty amount about Django ORM. I know 
what displayable provides in that case. But what I was hoping for a 
similar method to access data in django template as in Docs You can 
access data of custom fields in model extended from *Page.*


|
{{page.some_model.title }}
{{page.some_model.slug }}
{{page.some_model.custom_field }}
|
What I got from your answer is there is no way to access data in 
django template of model which is inheriting Displayable as it is not 
in context. Only way to get that data is to use custom urls, views and 
templates. It's like just getting some basics but implement almost 
everything to get data from db (on url parameters or something). Then 
pass it as context to template response along with django template 
just like Blog.


Actually Our old app uses mezzenine but inherits everything from 
*Page*. And using that we can easily access data using page in context 
in django template. But that does seems wrong to create everything as 
page. But what I understood that If I were to fix it I will have to 
write all those urls and views by myself.


If I understood something wrong please help. Also I do have another 
question so if I have model inheriting *Displayable* and now I need 
info from that model in pages other that specific pages provided by 
custom urls and views. how would I do it. For *Example* I need 3 
recent blog posts on home page. So how would I access them. Would I 
have to write custom View for Home page and if so then I'm just 
overriding Home page default view as it is *RichTextPage* at this point.


If anything seems confusing I would be happy to provide further 
information.


Help is highly appreciated.

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Custom content type extending Displayable accessing in template

2017-10-06 Thread Eduardo Rivas

Hello Hamza.

Displayable is an abstract model, which means you can use is as a base 
for your own models, but it doesn't exist in the database by itself. The 
fields defined in Displayable will simply become part of the model that 
inherits from it.


For example, if you create "class PortfolioItem(Displayable)" you'll be 
able to do:


item = PortofolioItem.objects.get(...)
item.title # This is provided by Displayable
item.slug # Also provided by Displayable

And yes, you'll need to provide your own views and urls to interact with 
models that inherit from Displayable. I recommend you take a look at 
mezzanine.blog for a great example of how to build models, views, and 
urls on top of Displayable.



On 2017-10-06 8:42 AM, Hamza Jutt wrote:

When extending from *Page* all you gotta do in template is access

|
{{page.some_model.some_field }}
|

but when extending *Displayable* that does not work. So How to access 
this in template. Or is there even a way without creating custom urls 
and views?


--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] WHy does deploying mezzanine on digital ocean shows INternal service error?

2017-09-25 Thread Eduardo Rivas
Did you wipe your server and run "fab secure" and "fab all"? It sounds 
like you don't have Postgres installed.



On 2017-09-25 2:18 PM, francois lemestre wrote:

Hello,

This happened after i did "fab deploy"

On Mon, Sep 25, 2017 at 4:56 PM, Eduardo Rivas 
<jerivasmel...@gmail.com <mailto:jerivasmel...@gmail.com>> wrote:


On which part of the tutorial did that happen? What other commands
did you run before that?


On 2017-09-25 1:28 AM, francois lemestre wrote:

Hi Eduardo,
The name of the project is coursofrancesco
Here is what i get now

pg_dump -FC coursofrancesco > /tmp/last.db ->

[104.131.97.134] out: sudo: unknown user: postgres
[104.131.97.134] out: sudo: unable to initialize policy plugin
[104.131.97.134] out:

Fatal error: sudo() received nonzero return code 1 while executing!

Requested: pg_dump -Fc coursofrancesco > /tmp/last.db
Executed: sudo -S -p 'sudo password:'  -u "postgres"  /bin/bash
-l -c "cd / >/de v/null && pg_dump -Fc coursofrancesco >
/tmp/last.db"

Aborting.
    Disconnecting from 104.131.97.134... done.


On Mon, Sep 25, 2017 at 1:29 AM, Eduardo Rivas
<jerivasmel...@gmail.com <mailto:jerivasmel...@gmail.com>> wrote:

It looks like you've followed a third-party tutorial that has
instructed you to install all the dependencies manually. Have
you tried following the official Mezzanine tutorial? It will
automate all the installation steps, including the dependency
installation, database configuration, static files, etc.

Here's the link to the official tutorial:
http://mezzanine.jupo.org/docs/deployment.html#tutorial
<http://mezzanine.jupo.org/docs/deployment.html#tutorial>

I suggest you wipe your Droplet and follow the steps shown
there (you are in Case 1: Deploying to a brand new server).
Read the instructions completely before starting, and if you
encounter any errors please include a traceback and all the
steps you followed until the problem appeared.

Good luck!


On 2017-09-24 9:54 PM, francois lemestre wrote:

Hi everyone, I am desperate.

I tried to deploy mezanine, following this

https://perezprogramming.com/blog/deploy-mezzanine-to-ubuntu-14-server-on-digitalocean-with-fabric/

<https://perezprogramming.com/blog/deploy-mezzanine-to-ubuntu-14-server-on-digitalocean-with-fabric/>
but i got *Internal service error*.

I tried this also

https://www.digitalocean.com/community/questions/deploying-django-mezzanine-using-fabric

<https://www.digitalocean.com/community/questions/deploying-django-mezzanine-using-fabric>,
same I got *Internal service error*.

I also tried the documentation of mezzanine. I got the same
thing. However, my website works well locally and also when
i create a virtualenv on the droplet. The problem appears
when i do*fab all


Please help me. Thanks
*

-- 
You received this message because you are subscribed to the

Google Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails
from it, send an email to
mezzanine-users+unsubscr...@googlegroups.com
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.


-- 
You received this message because you are subscribed to a

topic in the Google Groups "Mezzanine Users" group.
To unsubscribe from this topic, visit

https://groups.google.com/d/topic/mezzanine-users/LEMyi3HKk04/unsubscribe

<https://groups.google.com/d/topic/mezzanine-users/LEMyi3HKk04/unsubscribe>.
To unsubscribe from this group and all its topics, send an
email to mezzanine-users+unsubscr...@googlegroups.com
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.


-- 
You received this message because you are subscribed to the

Google Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to mezzanine-users+unsubscr...@googlegroups.com
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.


-- 
You received this message because you are subscribed to a topic in

the Google Groups "Mezzanine Users" group.
To unsubscribe from this topic, visit
https://groups.go

Re: [mezzanine-users] WHy does deploying mezzanine on digital ocean shows INternal service error?

2017-09-25 Thread Eduardo Rivas
On which part of the tutorial did that happen? What other commands did 
you run before that?



On 2017-09-25 1:28 AM, francois lemestre wrote:

Hi Eduardo,
The name of the project is coursofrancesco
Here is what i get now

pg_dump -FC coursofrancesco > /tmp/last.db ->

[104.131.97.134] out: sudo: unknown user: postgres
[104.131.97.134] out: sudo: unable to initialize policy plugin
[104.131.97.134] out:

Fatal error: sudo() received nonzero return code 1 while executing!

Requested: pg_dump -Fc coursofrancesco > /tmp/last.db
Executed: sudo -S -p 'sudo password:'  -u "postgres" /bin/bash -l -c 
"cd / >/de v/null && pg_dump -Fc coursofrancesco > /tmp/last.db"


Aborting.
Disconnecting from 104.131.97.134... done.


On Mon, Sep 25, 2017 at 1:29 AM, Eduardo Rivas 
<jerivasmel...@gmail.com <mailto:jerivasmel...@gmail.com>> wrote:


It looks like you've followed a third-party tutorial that has
instructed you to install all the dependencies manually. Have you
tried following the official Mezzanine tutorial? It will automate
all the installation steps, including the dependency installation,
database configuration, static files, etc.

Here's the link to the official tutorial:
http://mezzanine.jupo.org/docs/deployment.html#tutorial
<http://mezzanine.jupo.org/docs/deployment.html#tutorial>

I suggest you wipe your Droplet and follow the steps shown there
(you are in Case 1: Deploying to a brand new server). Read the
instructions completely before starting, and if you encounter any
errors please include a traceback and all the steps you followed
until the problem appeared.

Good luck!


On 2017-09-24 9:54 PM, francois lemestre wrote:

Hi everyone, I am desperate.

I tried to deploy mezanine, following this

https://perezprogramming.com/blog/deploy-mezzanine-to-ubuntu-14-server-on-digitalocean-with-fabric/

<https://perezprogramming.com/blog/deploy-mezzanine-to-ubuntu-14-server-on-digitalocean-with-fabric/>
but i got *Internal service error*.

I tried this also

https://www.digitalocean.com/community/questions/deploying-django-mezzanine-using-fabric

<https://www.digitalocean.com/community/questions/deploying-django-mezzanine-using-fabric>,
same I got *Internal service error*.

I also tried the documentation of mezzanine. I got the same
thing. However, my website works well locally and also when i
create a virtualenv on the droplet. The problem appears when i
do*fab all


Please help me. Thanks
*

-- 
You received this message because you are subscribed to the

Google Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to mezzanine-users+unsubscr...@googlegroups.com
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.


-- 
You received this message because you are subscribed to a topic in

the Google Groups "Mezzanine Users" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/mezzanine-users/LEMyi3HKk04/unsubscribe
<https://groups.google.com/d/topic/mezzanine-users/LEMyi3HKk04/unsubscribe>.
To unsubscribe from this group and all its topics, send an email
to mezzanine-users+unsubscr...@googlegroups.com
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.


--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
<mailto:mezzanine-users+unsubscr...@googlegroups.com>.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: how to access page content programmatically?

2017-09-24 Thread Eduardo Rivas

Let's start with the get() call

from mezzanine.pages.models import Page
mypage = Page.objects.get(title="My title")

Since the "content" field is part of the RichTextPage subclass, we need 
to access it through the relation: mypage.richtextpage.content.


If the page were a Form, it would be: mypage.form.content.

If you don't know what kind of Page subclass you're dealing with, you 
can call get_content_model() to figure it out: mypage.get_content_model()


That would return RichTextPage, or Form, or your own custom page types. 
You can chain field access as well: mypage.get_content_model().some_field


On 2017-09-24 2:23 PM, Malik Rumi wrote:



On Sunday, September 24, 2017 at 1:19:51 PM UTC-7, Malik Rumi wrote:


I have seen this post:

https://groups.google.com/forum/#!searchin/mezzanine-users/shell%7Csort:relevance/mezzanine-users/BhEelJ3gvf4/4g4QZwwXNPQJ





It does not answer the question, how to access page content
programmatically?


update:
i.e., the Page equivalent of
>>> testpage2 = BlogPost.objects.get(title__contains="091517 status")
>>> testpage2.content
text displays
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] WHy does deploying mezzanine on digital ocean shows INternal service error?

2017-09-24 Thread Eduardo Rivas
It looks like you've followed a third-party tutorial that has instructed 
you to install all the dependencies manually. Have you tried following 
the official Mezzanine tutorial? It will automate all the installation 
steps, including the dependency installation, database configuration, 
static files, etc.


Here's the link to the official tutorial: 
http://mezzanine.jupo.org/docs/deployment.html#tutorial


I suggest you wipe your Droplet and follow the steps shown there (you 
are in Case 1: Deploying to a brand new server). Read the instructions 
completely before starting, and if you encounter any errors please 
include a traceback and all the steps you followed until the problem 
appeared.


Good luck!


On 2017-09-24 9:54 PM, francois lemestre wrote:

Hi everyone, I am desperate.

I tried to deploy mezanine, following this 
https://perezprogramming.com/blog/deploy-mezzanine-to-ubuntu-14-server-on-digitalocean-with-fabric/ 
but i got *Internal service error*.


I tried this also 
https://www.digitalocean.com/community/questions/deploying-django-mezzanine-using-fabric, 
same I got *Internal service error*.


I also tried the documentation of mezzanine. I got the same thing. 
However, my website works well locally and also when i create a 
virtualenv on the droplet. The problem appears when i do*fab all



Please help me. Thanks
*

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Cartridge, add product

2017-09-23 Thread Eduardo Rivas
You might have a problem with Pillow (the image manipulation library). 
Some versions are not working with Mezzanine 4.2.3 and will output the 
full-size image instead of a thumbnail. The solution is to downgrade to 
Pillow 4.1.1 or upgrade to Mezzanine's master branch. See: 
https://github.com/stephenmcd/mezzanine/issues/1785



On 2017-09-23 3:11 PM, jenia mtl wrote:

Hello everyone.

When I add product-images to a product, and then go to that product's 
page, the images list is rendered incorrectly.
Specifically, the images are not in one neat thumbnail line under the 
product image. Instead the thumbnails are of different sizes (the size 
of the actual image) and not aligned ofcourse.


Can someone please tell me what I'm doing wrong? Why are my thumbnail 
images not placed correctly in a row?


Thanks in advance.
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] How to extend cartridge?

2017-09-23 Thread Eduardo Rivas
To extend templates: Create a template in your project under the same 
path as the Cartridge template. For example, if you want to provide your 
own template for Products, create a template in 
your_app/templates/shop/product.html. Here's an explanation of Django's 
template loading: 
https://docs.djangoproject.com/en/1.11/ref/templates/api/#django.template.loaders.app_directories.Loader


Here are all the Cartridge templates you can override in your own 
project: 
https://github.com/stephenmcd/cartridge/tree/master/cartridge/shop/templates


To extend views: You can create your own views and register them in the 
same URL pattern as the view you want to override. If you want to 
override the view that renders the checkout page, you can register your 
own view at the /shop/checkout path. Make sure your overriden views are 
registered before the Cartridge urlpatterns. For example


url("^shop/checkout/", my_views.my_custom_checkout, name="shop_checkout")

Here's Cartridge's url config which lists all urls managed by Cartridge: 
https://github.com/stephenmcd/cartridge/blob/master/cartridge/shop/urls.py


To override models you can use Mezzanine's field injection, documented 
here: http://mezzanine.jupo.org/docs/model-customization.html. Notice 
this is useful only to add new fields to a model, not to remove or alter 
existing fields. For that you might need to maintain your own fork.


Finally, remember Cartridge comes with a bunch of settings you can 
customize to modify it's behavior, you can review them all here: 
http://cartridge.jupo.org/configuration.html


On 2017-09-23 5:19 PM, jenia mtl wrote:

Hello.

I want to change cartridge a little. Change the templates, change the 
views and do on.


I did it by changing the code of the app itself. But I do not think 
it's the best idea for obvious reason (when the app will be upgrades, 
I'll be hard to merge my changes for example).


How do I extend Cartridge? Is there a mechanism to extend, override 
and so on Cartridge?


Thanks
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] How to view the cart in Cartridge?

2017-09-23 Thread Eduardo Rivas
Cartridge default templates include a "view cart" button in the top 
right corner of the site. You can see it in the demo site: 
http://mezzanine.jupo.org/blog/


Otherwise the cart is accessible at all times at the /shop/cart URL.

On 2017-09-23 5:16 PM, jenia mtl wrote:

Hello.

I can't figure out where is the cart? There is no page for it it 
seems. If it's so, do I need to implement it myself?


Thanks
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Does Orderable / Sortable Work on Editable Template Tag?

2017-09-15 Thread Eduardo Rivas
Cool! Glad you've enjoyed it so far. Hope it all works out.

On Sep 15, 2017 10:30 AM, "Matt Mansour" <slackbabb...@gmail.com> wrote:

> That said, just want to put out there that Mezzanine has really helped a
> lot for this project. For example, another requirement is deep
> categorization.  It's nice to see how Mezzanine handles that easily without
> tons of database queries.
>
> Overall loving Mezzanine. This is just one of those times where I'll have
> to create a page outside the admin, In this case for easily sorting and
> grouping many images.
>
> On Friday, September 15, 2017 at 9:22:30 AM UTC-7, Matt Mansour wrote:
>>
>> In this case I have to find a solution.  The editors are not happy. Makes
>> sense. These are galleries of homes and locations. Some locations have 100
>> + photos. Editors need to be able to quickly order and group a gallery
>> however they wish. They have a few thousand galleries to create.
>>
>> A gallery might start with 20 shots of the exterior. Then there might be
>> 5 kitchen shots. 10 bedroom shots. 10 living room shots. 20 shots of the
>> surrounding neighborhood.
>>
>> With that many images; dragging to sort and group takes much longer in a
>> row format (admin inlines) versus grid format.
>>
>> On Friday, September 15, 2017 at 9:12:09 AM UTC-7, Eduardo Rivas wrote:
>>>
>>> No problem :)
>>>
>>> I wouldn't worry much about ordering if you're expecting to manage tens
>>> of items. In my mind, manual ordering only makes sense when the amount of
>>> items is manageable and you want to make sure some appear first. For
>>> something like this "newest first" works fine IMO.
>>> On 2017-09-15 10:07 AM, Matt Mansour wrote:
>>>
>>> Thanks for the quick reply. My objective was the lazy approach and your
>>> quick reply was faster than me trying it. I'll continue using jQuery ui /
>>> sortable.
>>>
>>> I wish creating a grid view for inlines was a relatively easy job. But I
>>> don't have time for tackle that one. I am sure some would find a toggle to
>>> grid inline useful, as galleries can have 100 + images for one gallery.
>>>
>>> Drag sorting that many images is much easier in a grid format versus a
>>> long row of images.
>>>
>>> On Friday, September 15, 2017 at 8:57:17 AM UTC-7, Eduardo Rivas wrote:
>>>>
>>>> I don't think so. The Orderable abstract model is designed for inlines
>>>> only, and the {% editable %} template tag doesn't support that.
>>>> On 2017-09-15 9:55 AM, Matt Mansour wrote:
>>>>
>>>> Hi All -
>>>>
>>>> I am looking to create a page of images that are both sortable and in a
>>>> grid format - instead of each image stacked in rows like in the admin
>>>> inlines.
>>>>
>>>> I am digging into jQuery's sortable and breaking apart how it's used in
>>>> Mezzanine. I am making progress but I am curious if I could achieve the
>>>> sorting I am looking for by simply wrapping a list of  images in an
>>>> editable template tag?  Something like
>>>>
>>>> {% editable page.sort_images %}
>>>>
>>>> Code to render list of images to be sorted
>>>>
>>>> {% endeditable %}
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Mezzanine Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to mezzanine-use...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Mezzanine Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to mezzanine-use...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Does Orderable / Sortable Work on Editable Template Tag?

2017-09-15 Thread Eduardo Rivas
I don't think so. The Orderable abstract model is designed for inlines 
only, and the {% editable %} template tag doesn't support that.


On 2017-09-15 9:55 AM, Matt Mansour wrote:

Hi All -

I am looking to create a page of images that are both sortable and in 
a grid format - instead of each image stacked in rows like in the 
admin inlines.


I am digging into jQuery's sortable and breaking apart how it's used 
in Mezzanine. I am making progress but I am curious if I could achieve 
the sorting I am looking for by simply wrapping a list of  images in 
an editable template tag?  Something like


{%  editable  page.sort_images  %}
Code to render list of images to be sorted
{% endeditable %}
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: How can I do to create/edit as when using PageAdmin and list as when not using PageAdmin?

2017-09-14 Thread Eduardo Rivas
What have you tried? Django should create the migration when you swap 
out the subclasses. It's mostly going to remove fields since Page is a 
subclass of Displayable anyways.


There's also the nuclear option of just migrating your app back to zero 
to delete the tables and just create a new migration history with the 
correct parent class. Most of the time I don't mind doing this in 
development because it's just dummy data anyways. However, if losing 
data is not an option, you can dump the Page-based data to a fixture, 
manually remove the fields you don't need, and reuse the fixture to 
restore the Displayable-based model.



On 2017-09-14 4:14 PM, Andrey inte wrote:

Is there a way to migrate from Page to Displayable?
I have tried and it seems to be a pain...



--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: How can I do to create/edit as when using PageAdmin and list as when not using PageAdmin?

2017-09-14 Thread Eduardo Rivas

When I develop a Mezzanine site, there's usually two types of models I use:

1. Custom Page types. These are models that users want to incorporate 
into the page menu, and they must be editable/orderable from the page 
tree in the admin. In this case the model must inherit from 
mezzanine.pages.models.Page and the admin class must inherit from 
mezzanine.pages.admin.PageAdmin.


2. Displayable models. These are models we don't want to incorporate 
into the page menu, we want them to have their own section in the public 
site and their own list-enabled admin interface. The prime example is 
Mezzanine's built-in blog. It has it's own admin and it's own urls to 
display the BlogPost list and detail views. In this case the model must 
inherit from mezzanine.core.models.Displayable and the admin class from 
mezzanine.core.admin.DisplayableAdmin.


It looks to me like you want to go with approach #2. I suggest you 
re-write your models to use the Displayable base model and admin.


I gave a talk last year regarding this topic at DjangoCon. It explains 
how to convert a normal Django app into a Displayable-based Mezzanine 
app. Hopefully it'll be useful: https://www.youtube.com/watch?v=yVAmMXES2EU



On 2017-09-14 9:36 AM, Joseph Mohan wrote:
Yes, i've ran into this sort of thing a few times and not been able to 
figure an easy way so I try to use non-Page models..


A solution that I have used is to create a custom admin page and show 
a list of your custom pages. Not an elegant solution at all.


I'm really interested to see if ayone else ever deals with this!

On Thu, Sep 14, 2017 at 2:10 PM, Rainell Dilou Gómez 
> wrote:


Yes, I've illustrated above, if I do it like in Django Polls
Tutorial, just admin.site.register (Ingredient)

the listing will be ok, but in this case, the rendering of
creating/editing page isn't convenient, considering the number of
fields that need to be filled. For the creating/editing page would
be much more convenient to obtain a result equal to that obtained
using PageAdmin.

The most convenient result would be a simple listing (see third
image), which we can obtain following the example of Django Polls
Tutorial ( just admin.site.register(Ingredient) ) and an
creat/edit page as the one we can obtain using PageAdmin (
dmin.site.register(Ingredient, PageAdmin). See first image ). But
how to do it?


Il giorno giovedì 14 settembre 2017 13:12:56 UTC+2, Rainell Dilou
Gómez ha scritto:

Hello,
I have created a custom content type and I have a problem with
the listing in the admin panel. If I extends PageAdmin

|


admin.site.register(Ingredient,PageAdmin)
|

the create/edit page is rendered as in the image





and this is great for creating and editing, but the listing in
the page section, as show in the following image, is a problem
because the Ingredients (my custom content type) will be many,
will be hundreds.





If instead I don't extend PageAdmin

|
admin.site.register(Ingredient)
|

my custom content type list is rendered as in the following
image, in a more convenient way, considering that there will
be hundreds of Ingredients




but the create/edit page will be rendered as in the next
image, and it isn't convenient, considering that the fields
are twice as many as are shown in this image.





So how can I do to create/edit as when using PageAdmin and
list as when not using PageAdmin?

-- 
You received this message because you are subscribed to the Google

Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to mezzanine-users+unsubscr...@googlegroups.com
.
For more options, visit https://groups.google.com/d/optout
.


--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to 

Re: [mezzanine-users] Re: Customizing search URL

2017-09-12 Thread Eduardo Rivas
Yes it will, because the template uses the {% url %} tag and will 
respect your urlpatterns. Just make sure you set name="search" in your 
overridden pattern.


On 2017-09-12 9:19 AM, si...@e5r.no wrote:

tirsdag 12. september 2017 14.14.13 UTC+2 skrev Christian Kuper følgende:

Just create a new empty template and put {% extends
'template_to_extend' %} at the top. Then you get a template with
your custom name and the same content as the build in template.


Yes, but that doesn’t override the form action URL constructed on line
2 in `search_form.html`, right?

-- Simen
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Can't Turn Keywords On

2017-07-21 Thread Eduardo Rivas
Hey Malik. Welcome to the Mezzanine community.

- To add keywords, enter them as comma separated list in the admin Meta
panel on objects that support them (Blog posts, pages, etc).

- If you're using Mezzanine's default templates they should just appear in
the blog pages once you add some keywords in the admin. If you're using
custom templates, you'll need to load blog_tags and call the {%
keywords_for %} tag. Here's how Mezzanine does it by default
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/templates/blog/includes/filter_panel.html#L54


On Jul 21, 2017 5:33 PM, "Malik Rumi"  wrote:

Hello. New user, first post.

I have been looking for over an hour and I give up. How and where do I
'turn on' the keywords for my blog?
It took me a while to figure out that you call them 'keywords' instead of
'tags'. I found the keywords_for template tag, I found the template for
blog list and detail. None of it is commented out, so I would think it
would 'just work', or 'just show up', but it doesn't and I have not been
able to figure out why. I looked in the admin for a way to add them, and in
several files called admin.py for how to register them, all without success
- or at least, understanding.
I also see no way to create new keywords. I figured out how to create
categories, and they show up on the right side as expected, but there are
no keywords in sight, and no tag cloud, and no way to make them.
Please tell me what I am missing. Thanks.

-- 
You received this message because you are subscribed to the Google Groups
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] default settings for users / blog posts

2017-07-11 Thread Eduardo Rivas
The “is_staff” flag only allows users to log into the admin. Groups and 
permissions determine which models they can add/edit/delete. 

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] default settings for users / blog posts

2017-07-10 Thread Eduardo Rivas
Hello Patrick.

1. I don’t think there’s a setting to require a login for blog posts. I suggest 
you override Mezzanine’s blog patterns in your root urlconf and apply  the 
login_required decorator to the blog views. See: 
https://stackoverflow.com/a/5771286/1330003
2. If you want to apply custom logic to the signup process you can go with 
signals. Specifically the post_save signal on the User model. 
https://docs.djangoproject.com/en/1.11/topics/signals/

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


RE: [mezzanine-users] Re: Extending Displayable Model, Views

2017-07-09 Thread Eduardo Rivas
Glad it’s all sorted out. 

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Extending Displayable Model, Views

2017-07-08 Thread Eduardo Rivas
Have you included your url patterns before Mezzanine's catch-all in the
root conf?

On Jul 7, 2017 1:37 PM,  wrote:

Solved that, and have been constantly 404'ing since. Saw another of your
posts Eduardo about i18n and middleware causing 404's on pages that don't
exist, but have disabled i18n and am still running into issue. It's almost
like the urls.py is not updating.

Here is the root url pattern I am using:
url("^news/", include("kdi.urls")),

And the urls.py for kdi:
url(r"^$", "kdi.views.newstest", name="newstest"),

And the `newstest` view:
def newstest(request, slug):
print "called!"
return HttpResponse('Test')


Expected behavior should be that navigation to domain/news will send the
request to `kdi.urls`, where it will accept any string (^$) and call the
`newstest` view to return the super simple response of "test". 404's every
time.




On Friday, July 7, 2017 at 11:11:38 AM UTC-7, marcusgu...@gmail.com wrote:
>
> Have solved the fully qualified path issue, but now throwing `'unicode'
> object has no attribute 'regex'` error. This one is more difficult to
> traceback.
>
> On Thursday, July 6, 2017 at 8:12:00 PM UTC-7, marcusgu...@gmail.com
> wrote:
>>
>> Hi, thanks for such a great resource! I have googled around for a few
>> days and have made some headway this problem, but have hit a wall. I'm
>> trying to use the Displayable model to create an easy way to add news
>> stories and have them displayed as a simple list view, which is very
>> similar behavior to the blog app. If there is a better solution using a
>> ForeignKey, please point me in the right direction!
>>
>> I read an older post
>> 
>>  about
>> creating a new Displayable, and have used Mezzanine's source code to
>> successfully extend the Displayable model and have it appear correctly in
>> the admin. The issue now is that I can't seem to get the views (views.py)
>> and url patterns to work. When clicked "view on site" from the admin, the
>> url seems to grab the model's slug ("news"), but ends up linking to
>> http://localhost:8000/en/admin//news/%28u/, and doesn't work
>> linking directly to the actual item's slug. Exploring the source code for
>> Mezzanine's blog's urls and views, I'm unsure how to correctly refactor. I
>> understand that I will need to create my own templates to act as 
>> blog_post_list.html
>> and blog_post_detail.html, but don't know how to create the super basic
>> views to point to them.
>>
>> models.py:
>> class News(Displayable, RichText):
>>
>> pagetitle = models.CharField('Title', max_length=255, blank=True)
>> url = models.CharField('Link', max_length=255, blank=True)
>> summary = models.CharField('Summary', max_length=255, blank=True)
>> date = models.DateField(_("Date"), default=datetime.date.today)
>> categories = models.ManyToManyField("NewsCategory",
>> verbose_name=_("Categories
>> (Magazine, Award, etc.)"),
>> blank=True,
>> related_name="newsitems")
>> related_news = models.ManyToManyField("self",
>>  verbose_name=_("Related News"),
>> blank=True)
>>
>> class Meta:
>> verbose_name = _("News Item")
>> verbose_name_plural = _("News Items")
>>
>> def get_absolute_url(self):
>> url_name = 'news'
>> kwargs = {
>> 'slug': self.slug,
>> }
>> return (url_name, (), kwargs)
>>
>>
>> class NewsCategory(Slugged):
>> """
>> A category for grouping news items into a series.
>> """
>>
>> class Meta:
>> verbose_name = _("News Category")
>> verbose_name_plural = _("News Categories")
>> ordering = ("title",)
>>
>> @models.permalink
>> def get_absolute_url(self):
>> return ("news_item_list_category", (), {"category": self.slug})
>>
>> admin.py
>> news_fieldsets = deepcopy(DisplayableAdmin.fieldsets)
>> news_fieldsets[0][1]["fields"].insert(1, "categories")
>> news_fieldsets[0][1]["fields"].extend(["pagetitle", "url", "summary",
>> "date"])
>> news_fieldsets = list(news_fieldsets)
>> news_fieldsets.insert(1, (_("Other News"), {
>> "classes": ("collapse-closed",),
>> "fields": ("related_news",)}))
>> news_list_filter = deepcopy(DisplayableAdmin.list_filter) +
>> ("categories",)
>>
>>
>> class NewsAdmin(DisplayableAdmin):
>> """
>> Admin class for news posts.
>> """
>>
>> fieldsets = news_fieldsets
>> # list_display = news_list_display
>> list_filter = news_list_filter
>> filter_horizontal = ("categories", "related_news",)
>>
>> def save_form(self, request, form, change):
>> """
>> Super class ordering is important here - user must get saved
>> first.
>> """
>> DisplayableAdmin.save_form(self, request, form, change)
>> return DisplayableAdmin.save_form(self, request, 

RE: [mezzanine-users] Extending Displayable Model, Views

2017-07-07 Thread Eduardo Rivas
Could you share the error message you’re getting?

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Extending Displayable Model, Views

2017-07-06 Thread Eduardo Rivas
I see you created a urlconf for your app, but have you added it to your
root urls.py? If so, is if above or below Mezzanine's catch-all pattern?

On Jul 6, 2017 9:12 PM,  wrote:

> Hi, thanks for such a great resource! I have googled around for a few days
> and have made some headway this problem, but have hit a wall. I'm trying to
> use the Displayable model to create an easy way to add news stories and
> have them displayed as a simple list view, which is very similar behavior
> to the blog app. If there is a better solution using a ForeignKey, please
> point me in the right direction!
>
> I read an older post
> 
>  about
> creating a new Displayable, and have used Mezzanine's source code to
> successfully extend the Displayable model and have it appear correctly in
> the admin. The issue now is that I can't seem to get the views (views.py)
> and url patterns to work. When clicked "view on site" from the admin, the
> url seems to grab the model's slug ("news"), but ends up linking to
> http://localhost:8000/en/admin//news/%28u/, and doesn't work
> linking directly to the actual item's slug. Exploring the source code for
> Mezzanine's blog's urls and views, I'm unsure how to correctly refactor. I
> understand that I will need to create my own templates to act as 
> blog_post_list.html
> and blog_post_detail.html, but don't know how to create the super basic
> views to point to them.
>
> models.py:
> class News(Displayable, RichText):
>
> pagetitle = models.CharField('Title', max_length=255, blank=True)
> url = models.CharField('Link', max_length=255, blank=True)
> summary = models.CharField('Summary', max_length=255, blank=True)
> date = models.DateField(_("Date"), default=datetime.date.today)
> categories = models.ManyToManyField("NewsCategory",
> verbose_name=_("Categories
> (Magazine, Award, etc.)"),
> blank=True,
> related_name="newsitems")
> related_news = models.ManyToManyField("self",
>  verbose_name=_("Related News"),
> blank=True)
>
> class Meta:
> verbose_name = _("News Item")
> verbose_name_plural = _("News Items")
>
> def get_absolute_url(self):
> url_name = 'news'
> kwargs = {
> 'slug': self.slug,
> }
> return (url_name, (), kwargs)
>
>
> class NewsCategory(Slugged):
> """
> A category for grouping news items into a series.
> """
>
> class Meta:
> verbose_name = _("News Category")
> verbose_name_plural = _("News Categories")
> ordering = ("title",)
>
> @models.permalink
> def get_absolute_url(self):
> return ("news_item_list_category", (), {"category": self.slug})
>
> admin.py
> news_fieldsets = deepcopy(DisplayableAdmin.fieldsets)
> news_fieldsets[0][1]["fields"].insert(1, "categories")
> news_fieldsets[0][1]["fields"].extend(["pagetitle", "url", "summary",
> "date"])
> news_fieldsets = list(news_fieldsets)
> news_fieldsets.insert(1, (_("Other News"), {
> "classes": ("collapse-closed",),
> "fields": ("related_news",)}))
> news_list_filter = deepcopy(DisplayableAdmin.list_filter) +
> ("categories",)
>
>
> class NewsAdmin(DisplayableAdmin):
> """
> Admin class for news posts.
> """
>
> fieldsets = news_fieldsets
> # list_display = news_list_display
> list_filter = news_list_filter
> filter_horizontal = ("categories", "related_news",)
>
> def save_form(self, request, form, change):
> """
> Super class ordering is important here - user must get saved first.
> """
> DisplayableAdmin.save_form(self, request, form, change)
> return DisplayableAdmin.save_form(self, request, form, change)
>
> class NewsCategoryAdmin(BaseTranslationModelAdmin):
> """
> Admin class for blog categories. Hides itself from the admin menu
> unless explicitly specified.
> """
>
> fieldsets = ((None, {"fields": ("title",)}),)
>
> def has_module_permission(self, request):
> """
> Hide from the admin menu unless explicitly set in
> ``ADMIN_MENU_ORDER``.
> """
> for (name, items) in settings.ADMIN_MENU_ORDER:
> if "blog.BlogCategory" in items:
> return True
> return False
>
>
> admin.site.register(News, NewsAdmin)
> admin.site.register(NewsCategory, NewsCategoryAdmin)
>
> urls.py:
> from .models import News
> import .views
>
> _slashes = (
> "/" if settings.BLOG_SLUG else "",
> "/" if settings.APPEND_SLASH else "",
> )
>
> urlpatterns = patterns(
> 'news.views',
> url("^%s(?P.*)%s$" % _slashes, "news", name="news"),
> )
>
> views.py:
> from django.shortcuts import render
>
> def news(request, slug):
> return HttpResponse('Test')
>
> The view is currently not even returning 

Re: [mezzanine-users] CSS Vendor Prefixes Strategy + SASS + LiveReload server

2017-06-30 Thread Eduardo Rivas

Hey Roger. Here's how I've done it in the past:

- Create a Django app in your project to hold your static files and 
templates (I name it "theme" since it holds everything related to the 
visual styles of the site).


- Inside theme/static/ setup your frontend tooling. I use Webpack to 
compile SASS, run Autoprefixer, and add ES6 transpilation to my JS. You 
can use whatever you like (grunt, gulp, bash scripts, etc). I configure 
it to output my JS and CSS to theme/static/build, creating main.css and 
main.js. I then point my templates to static/build/main.css and 
static/build/main.js.


- Nearly all task runners support LiveReload via a plugin or something. 
I use the Webpack plugin and installed an extension in my browser. Works 
perfect.


At this point the only thing pending is deployment. I choose to not 
track the build/ folder in git, so I have extended my Fabric setup to 
run Webpack locally in production mode on each deploy and copy the 
assets to the server (on the same location as the dev assets, so no 
changes in templates are required). This gives me minified and uglified 
production builds. Django Compressor handles cache invalidation.


Hope that helps!


On 2017-06-30 2:51 AM, Roger van Schie wrote:
Any suggestions for an efficient methodology to deal with css vendor 
prefixes?


As this will probably tie in, anyone got a nice strategy for using 
SASS? ( I would really love to use Foundation6 with mezzanine, I find 
the code much more semantic than bootstrap and way quicker to code)( I 
know I can use Foundation6 with just css, but that defeats the purpose 
of saving time)


As a bonus bonus, anyone running a livereload type of server with 
Mezzanine for development? (I hate having to push refresh all the 
time, really wastes time)


Thanks
Roger

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Enable RichTextField().formfield() for registered users

2017-06-04 Thread Eduardo Rivas
Hmm, I would assume that the media library is not going to work for non
admin users. You'll have to implement file uploads yourself. I would start
by checking how Mezzanine handles file uploads in TinyMCE and emulating
that without the admin checks.

But first make sure you want non admin users uploading files to your
server. I would recommend implementing a regular file field in the form and
using the rich text editor for text only.

On Jun 4, 2017 3:12 PM, "Diego Castro"  wrote:

>  Thank you for your answer Eduardo. No, I had not included {{form.media}}.
> Now the richtextfield is displayed correctly, thank you very much. But
> there is a problem, if I want to load an image the following error appears
>
> Page not found (404)
> Request Method: GET
> Request URL: http://127.0.0.1:8000/fisica/undefined/?pop=5=image
> Raised by: mezzanine.pages.views.page
>
> I am putting in the template the following:
>
> 
>  {% csrf_token %}
>  {{ form.media }}
>  {{ form.as_p }}
>  Crear
> 
>
> I am doing something wrong?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Enable RichTextField().formfield() for registered users

2017-06-04 Thread Eduardo Rivas
Have you included  {{ form.media }} in the template where you render the
form? That should bring in the CSS and JS required to render the TinyMCE
widget.

On Jun 4, 2017 2:30 PM, "Diego Castro"  wrote:


Hello, I have created a form that is added to a page using decorators in a
page processor. This is the form:

class ExperimentForm(forms.Form):
   nombre = forms.CharField()
   texto = RichTextField().formfield()



The problem I have is to display "RichTextField().formfield()" to
registered users who are not superusers. I do not know what to do to
achieve it.

In advance I appreciate the help

-- 
You received this message because you are subscribed to the Google Groups
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Channels?

2017-05-19 Thread Eduardo Rivas
I don't think there's anything specific about Mezzanine and Channels. If 
you have a Django app that works, all you'd need to do is install it as 
usual in a Mezzanine project (add to INSTALLED_APPS, configure urls, 
etc). Same thing with the server, if you have a stack that works with 
Django, it should work with Mezzanine.



On 2017-05-19 12:58 PM, Richard Prosser wrote:
I would like to add Channels 
 to Mezzanine, so as to 
provide a custom chat facility for one of my projects. I have tried to 
do this and add special pages via Django CMS but I have found that to 
be quite awkward.


Does Mezzanine make such additions any easier? My impression is 'yes' 
because we can use our own models etc. but I would welcome some 
informed opinion on the matter. One concern may be that a simple HTTP 
server will not suffice, as there will need to be a handler for each 
channel.


I may be willing to make a GitHub repo. for this, at least in a basic 
sense. My own chat code will be private however.


I am an experienced Python developer and I have explored Django in 
some depth recently but I am new to Mezzanine.



Thanks ...

Richard

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] error "context must be a dict rather than Context"

2017-05-04 Thread Eduardo Rivas
This is because Mezzanine is not compatible with Django 1.11. I 
recommend you downgrade to 1.10 for now.


There's an open pull request that implements Django 1.11 support, in 
case you want to try it out: 
https://github.com/stephenmcd/mezzanine/issues/1749


On 2017-05-04 1:59 PM, marco coso wrote:



Hello

i successfully installed mezzanine on my pc, but when i tried to setup 
it on a server, i got this error:



Error during template rendering

"In template 
|/var/www/envlibri/lib/python2.7/site-packages/mezzanine/core/templates/base.html|, 
error at line *66*



  context must be a dict rather than Context

"

the line is this:

{% block navbar_search_form %}{% search_form "all" %}{% endblock %}


i check and i have exactly the same line in my pc, where mezzanine run 
without problem.


This error is not present in the log, not in that of apache, neither 
in the custom log of mezzanine.


Any help?

p.s.

Django Version: 1.11

, python 2.7.9
--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Fetch As Google - Redirect

2017-04-30 Thread Eduardo Rivas
Your site is actually served on the www subdomain, and the top level 
domain is configured to redirect to that. This way of setting up sites 
is down to personal preference, but it's a perfectly valid 
configuration. Google understands it and will set the www subdomain as 
the "canonical" URL.


The redirect itself is done by the server, before the request reaches 
Mezzanine.



On 2017-04-30 2:58 PM, Richard Jackson wrote:



Hi everyone,

Has anyone had any issues with Google Search Console crawling a 
Mezzanine site? I used 'Fetch as Google' and the crawl was redirected, 
giving the below message:




Any thoughts very much appreciated!

Rich

--
You received this message because you are subscribed to the Google 
Groups "Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to mezzanine-users+unsubscr...@googlegroups.com 
.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] hiding the "Rich text page" as creatable page type

2017-03-30 Thread Eduardo Rivas
Sorry, auto correct messed up your name!

On Mar 30, 2017 1:18 PM, "Eduardo Rivas" <jerivasmel...@gmail.com> wrote:

> Hi Pima.
>
> There's a setting just for that http://mezzanine.jupo.
> org/docs/configuration.html#admin-removal
>
> On Mar 30, 2017 12:51 PM, <mich...@mozillafoundation.org> wrote:
>
>> Hi,
>>
>> I'm trying to hide the "Rich text page" page type in the admin/pages/page
>> view - normally this would be finding the admin.py and commenting off the
>> `register` call for it, but since this file is somewhere under mezzanine's
>> source control, deep editing an admin.py inside an app is probably a bad
>> plan.
>>
>> Is there a way to tell Mezzanine that I want to keep the model around, so
>> I can extend it in my own models, but not show the base "Rich text page" as
>> creatable thing in the Mezzanine admin?
>>
>> - Pomax
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Mezzanine Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to mezzanine-users+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] hiding the "Rich text page" as creatable page type

2017-03-30 Thread Eduardo Rivas
Hi Pima.

There's a setting just for that
http://mezzanine.jupo.org/docs/configuration.html#admin-removal

On Mar 30, 2017 12:51 PM,  wrote:

> Hi,
>
> I'm trying to hide the "Rich text page" page type in the admin/pages/page
> view - normally this would be finding the admin.py and commenting off the
> `register` call for it, but since this file is somewhere under mezzanine's
> source control, deep editing an admin.py inside an app is probably a bad
> plan.
>
> Is there a way to tell Mezzanine that I want to keep the model around, so
> I can extend it in my own models, but not show the base "Rich text page" as
> creatable thing in the Mezzanine admin?
>
> - Pomax
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Local .css file not updating, working fine when deployed

2017-03-17 Thread Eduardo Rivas
My guess is you might have run collecstatic locally, and Mezzanine is 
now using the project-wide static/ folder instead of the per-app static/ 
folder (where changes are usually made).


What are the contents of your top-level static/ folder? It should only 
contain a media/ folder in development.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[mezzanine-users] Re: creating a page with a custom, or multiple, rich text fields

2017-03-13 Thread Eduardo Rivas
Hi Mike.

You are importing RichText, which is an abstract model, not a field. The 
actual field is located at mezzanine.core.fields.RichTextField. You can 
import it and add as many instances as you want to your model.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Mezzanine 4.2.3 released

2017-03-10 Thread Eduardo Rivas

Excellent! Thanks.

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[mezzanine-users] Re: Mezzanine 4.2.3 released

2017-03-10 Thread Eduardo Rivas
Hey Steve, thanks for the release! Are you also going to release Grappelli 
and Filebrowser? They contain fixes for the inline issues described in 
https://github.com/stephenmcd/grappelli-safe/pull/79#issuecomment-263872748

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Cannot Install using createdb

2017-03-10 Thread Eduardo Rivas
Hi Charles.

This is due to the recent release of Bleach 2 (one of Mezzanine's
dependencies). Another thread was started recently regarding that and it
has the solution too
https://groups.google.com/forum/m/#!topic/mezzanine-users/59KM9IIe9eQ

On Mar 10, 2017 10:38 AM, "Charles Roberts" <587ro...@gmail.com> wrote:

> Hi,
>
> I have been looking at the same problem for several days now, so it is
> time to seek 'newbie' help.  I am following instructions at:
> http://mezzanine.jupo.org/docs/overview.html#installation
>
> I am trying to install a default Mezzanine build using the sqlite db.  I
> am using python 2.7.10 because the target system will run on AWS Lambda
> using Zapper, which only supports Python 2.7.  Production DB will be an RDS
> db running SQL. At the moment I just want to get a local mezzanine env set
> up to play with.
>
>  I am using:
>
>
>- Mac OSX
>- Python 2.7.10
>- virtualenv
>
> Commands:
>
> inside virtual env running python 2.7.10
>
>
>- pip install mezzanine
>- pip install yolk
>- yolk -l (to list installed packages)
>-
>
>   Django 1.10.6 has no metadata
>
>   Mezzanine 4.2.2 has no metadata
>
>   Pillow 4.0.0 has no metadata
>
>   Python  - 2.7.10   - active development
>   (/System/Library/Frameworks/Python.framework/Versions/2.7/
>   lib/python2.7/lib-dynload)
>
>   appdirs 1.4.3 has no metadata
>
>   beautifulsoup4 4.5.3 has no metadata
>
>   bleach 2.0.0 has no metadata
>
>   chardet 2.3.0 has no metadata
>
>   django-contrib-comments 1.8.0 has no metadata
>
>   filebrowser-safe 0.4.6 has no metadata
>
>   future 0.16.0 has no metadata
>
>   grappelli-safe 0.4.5 has no metadata
>
>   html5lib 0.9 has no metadata
>
>   oauthlib 2.0.1 has no metadata
>
>   olefile 0.44 has no metadata
>
>   packaging 16.8 has no metadata
>
>   pip 9.0.1 has no metadata
>
>   pyparsing 2.2.0 has no metadata
>
>   pytz 2016.10 has no metadata
>
>   requests-oauthlib 0.8.0 has no metadata
>
>   requests 2.13.0 has no metadata
>
>   setuptools 34.3.1 has no metadata
>
>   six 1.10.0 has no metadata
>
>   tzlocal 1.3 has no metadata
>
>   webencodings 0.5 has no metadata
>
>   wheel 0.29.0 has no metadata
>
>   wsgiref - 0.1.2- active development
>   (/System/Library/Frameworks/Python.framework/Versions/2.7/
>   lib/python2.7)
>
>   yolk 0.4.3 has no metadata
>
>
>- mezzanine-project mysecondsite
>- cd mysecondsite
>- python manage.py createdb
>
> I then get the following:
>
> (mezzanine) Charless-MBP-3:mysecondsite charlesroberts$ python manage.py
> createdb
>
> Traceback (most recent call last):
>
>   File "manage.py", line 14, in 
>
> execute_from_command_line(sys.argv)
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/django/core/management/__init__.py", line 367, in
> execute_from_command_line
>
> utility.execute()
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/django/core/management/__init__.py", line 341, in execute
>
> django.setup()
>
>   File 
> "/Users/charlesroberts/mezzanine/lib/python2.7/site-packages/django/__init__.py",
> line 27, in setup
>
> apps.populate(settings.INSTALLED_APPS)
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/django/apps/registry.py", line 108, in populate
>
> app_config.import_models(all_models)
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/django/apps/config.py", line 199, in import_models
>
> self.models_module = import_module(models_module_name)
>
>   File "/System/Library/Frameworks/Python.framework/Versions/2.7/
> lib/python2.7/importlib/__init__.py", line 37, in import_module
>
> __import__(name)
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/mezzanine/conf/models.py", line 7, in 
>
> from mezzanine.core.models import SiteRelated
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/mezzanine/core/models.py", line 24, in 
>
> from mezzanine.core.fields import RichTextField, OrderField
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/mezzanine/core/fields.py", line 14, in 
>
> from mezzanine.utils.html import escape
>
>   File "/Users/charlesroberts/mezzanine/lib/python2.7/site-
> packages/mezzanine/utils/html.py", line 36, in 
>
> if "tel" not in sanitizer.BleachSanitizer.allowed_protocols:
>
> AttributeError: 'module' object has no attribute 'BleachSanitizer'
>
>
> I have previously successfully used the djangogirls tutorial and the
> Django Tutorial using:
>
>
>- python manage.py migrate
>
> with no issues.
>
>
> I am at the point of going with a 5 min Wordpress install,  someone bring
> me back from the edge, because I am fed up of googling in desperation!!
>
>
> many thanks
>
>
>
>
> --
> You received this message because you 

Re: [mezzanine-users] Re: Can't get gallery to work with existing django project

2017-02-14 Thread Eduardo Rivas
Galleries don't live under a single URL like the blog. They are a page type
that can have any URL.

To create a gallery, go the Pages section of the admin and select "Gallery"
 from the drop down at the top of the page tree.

On Feb 14, 2017 7:09 AM, "Bernardo Tavares"  wrote:

> Sorry, I get a page 404 error when importing all urls from mezzanine. "
> http://127.0.0.1:8000/blog/; works fine.
>
> Page not found (404)
> Request Method: GET
> Request URL: http://127.0.0.1:8000/gallery/
> Raised by: mezzanine.pages.views.page
>
>
>
> Em segunda-feira, 13 de fevereiro de 2017 21:15:50 UTC-2, Stephen McDonald
> escreveu:
>>
>> You didn't post the error.
>>
>> On Tue, Feb 14, 2017 at 4:35 AM, Bernardo Tavares 
>> wrote:
>>
>>>
>>>
>>> Em segunda-feira, 13 de fevereiro de 2017 15:32:46 UTC-2, Bernardo
>>> Tavares escreveu:

 Hi,

 I'm trying to plug in mezzanine's blog and gallery system into and
 existing website. After pluging in 'mezzanine.urls', the blog worked like a
 charm, but i can't get the gallery to work. I can't seem to find the
 configuration for the '/gallery/' url either.

>>>
>>>
>>> I'm getting the following error when trying to access the url:
>>>
>>> Request Method: GET
>>> Request URL: http://127.0.0.1:8000/gallery/
>>> Raised by: mezzanine.pages.views.page
>>>
>>>
>>>
>>>
 Here is my main 'urls.py' file:

 from django.conf.urls import include, url
 from django.contrib import admin
 from main import urls as mainUrls
 import mezzanine.urls as mezzanineUrls

 urlpatterns = (
 url(r'^', include(mainUrls)),
 url(r'^', include(mezzanineUrls)),
 url(r'^admin/', include(admin.site.urls)),
 )


 Here is my installed apps:

 INSTALLED_APPS = (
 "django.contrib.admin",
 "django.contrib.auth",
 "django.contrib.contenttypes",
 "django.contrib.redirects",
 "django.contrib.sessions",
 "django.contrib.sites",
 "django.contrib.sitemaps",
 "django.contrib.staticfiles",
 "django.contrib.messages",
 'main',
 'custom_mezzanine',
 "mezzanine.boot",
 "mezzanine.conf",
 "mezzanine.core",
 "mezzanine.generic",
 "mezzanine.pages",
 "mezzanine.blog",
 "mezzanine.forms",
 "mezzanine.galleries",
 #"mezzanine.twitter",
 # "mezzanine.accounts",
 # "mezzanine.mobile",
 'parsley',
 'django_comments',
 )

 And i added some settings from mezzanine's start-project:

 #Weird-mezzanine-conf
 # Store these package names here as they may change in the future since
 # at the moment we are using custom forks of them.
 PACKAGE_NAME_FILEBROWSER = "filebrowser_safe"
 PACKAGE_NAME_GRAPPELLI = "grappelli_safe"
 OPTIONAL_APPS = (
 "debug_toolbar",
 "django_extensions",
 "compressor",
 PACKAGE_NAME_FILEBROWSER,
 PACKAGE_NAME_GRAPPELLI,
 )
 SITE_ID = 1
 COMMENTS_DISQUS_API_SECRET_KEY = 'xxx'
 COMMENTS_DISQUS_SHORTNAME = 'xxx'


 try:
 from mezzanine.utils.conf import set_dynamic_settings
 except ImportError:
 pass
 else:
 set_dynamic_settings(globals())

 I'm several hours stuck with this problem and would be glad if someone
 could help me. Thanks

>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Mezzanine Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to mezzanine-use...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Stephen McDonald
>> http://jupo.org
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mezzanine-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Multiple Blogs

2017-01-04 Thread Eduardo Rivas
It looks like Mezzanine will derive a template name from the category slug, 
allowing you to create one template per category. Just an alternative to 
the in-template conditional.

https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/views.py#L46-L47

On Wednesday, January 4, 2017 at 3:11:59 PM UTC-6, Kenneth Bolton wrote:
>
> category.slug might be better for you!
>
> On Wed, Jan 4, 2017 at 4:00 PM, userblaz  
> wrote:
>
>> thanks I managed with {% if category.title == 'blog' %}..
>>
>> On Tuesday, January 3, 2017 at 9:47:41 PM UTC+1, Kenneth Bolton wrote:
>>>
>>>
>>> On Tue, Jan 3, 2017 at 2:30 PM, userblaz  wrote:
>>> >
>>> > I went through Josh's blog and it was very helpful with the restyle of 
>>> my site but i didn't see
>>> > any section explaining how to have different stylings for 2 or more 
>>> different blogs. the base 
>>> > template is the same, I want to have a different base.html template on
>>> > http://example.com/posts/category/blog/ than 
>>> http://example.com/posts/category/news/...
>>>
>>> The crux of one solution is to add something appropriate to your 
>>> blog_post_list.html and blog_post_detail.html, perhaps in `extra_head` 
>>> block, that has your custom CSS in it with template `if` blocks to check 
>>> the category.
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Mezzanine Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to mezzanine-use...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Rss and tags issues.

2016-12-02 Thread Eduardo Rivas

Hi Iliana.

For the link issue, make sure you've updated the Site record in the 
admin. It's under Site > Sites in the admin sidebar. By default it's set 
to the local URL, but you should change it to your production domain.


Regarding the tags in blog posts, Mezzanine ships with linked tags in 
the default blog post template (blog/blog_post_list.html). If you've 
created your own templates, you'll need to replicate that to generate 
the tag links:


{% keywords_for blog_post as tags %}

{% for tag in tags %}
{{ tag 
}}

{% endfor %}


See 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/templates/blog/blog_post_detail.html#L69-L81


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Extra model fields at Mezzanine's derived package ?

2016-11-11 Thread Eduardo Rivas
Without knowing exactly which models you're modifying, I would recommend 
to avoid field injection in reusable apps. If you're injecting stuff on 
Page, it might be better to create a custom Page type and distribute 
that with your package. See: 
http://mezzanine.jupo.org/docs/content-architecture.html#creating-custom-content-types


If you still want to go with the field injection route, there are a few 
approaches that I know of:


- Maintain your own migration history for modified models using Django's 
MIGRATION_MODULES 
http://mezzanine.readthedocs.io/en/latest/model-customization.html#field-injection-caveats


- Add support for "out of app" migrations to Django 
http://bitofpixels.com/blog/upgrading-to-mezzanine-4/ (see the 
EXTRA_MODEL_FIELDS section)


- Create a model with your extra fields and couple it with a OneToOne field.

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Mezzanine development using Bash on Ubuntu on Windows 10

2016-11-08 Thread Eduardo Rivas
I played around with it a little, and was able to successfully get a 
project running with virtualenv, git, Django, and Mezzanine (as I 
regularly do in Ubuntu). I just installed Postgres as a Windows 
application (downloading the installer from their site, not using apt in 
the bash shell). After that you can connect to the Postgres server with 
Django as usual.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] How to deploy using Fabric to RHEL server?

2016-10-31 Thread Eduardo Rivas
Hi CJ. I think you're on the right track with your modified fabfile and 
supporting blog post. I'm still of the idea that something like this 
should exist as a third-party package, and not as part of Mezzanine 
itself. My understanding is that we're trying to provide an easy-to-use 
starting point for a common setup (cheap, popular, Debian based VPS), 
not an alternative for all server environments.


Furthermore, bringing this into Mezzanine means that we have to keep it 
compatible with new releases, and people deploying to RHEL (or using the 
distro-detection mechanism) will file bugs against Mezzanine when 
something breaks on that front.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Fabric deployment with ALLOWED_HOSTS wildcard issue

2016-10-31 Thread Eduardo Rivas

You're welcome :)

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Fabric deployment with ALLOWED_HOSTS wildcard issue

2016-10-31 Thread Eduardo Rivas
Yeah, the server name is working, the problem is that nginx is returning 
a 444 (a proprietary error code that means "drop this request 
altogether" https://httpstatuses.com/444). Whether or not a 444 is 
returned depends on a simple match against an ALLOWED_HOSTS regex, and 
that will not work with the dot notation 
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/project_template/deploy/nginx.conf.template#L23-L26


Maybe just comment-out that block and see how it goes? That should 
disable the checks for illegal hosts on nginx and let everything reach 
Django.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Fabric deployment with ALLOWED_HOSTS wildcard issue

2016-10-31 Thread Eduardo Rivas

Hi Geoffrey.

I think your diagnoses is correct: Django supports the wildcard domain 
syntax, but nginx doesn't. My recommendation would be to be explicit in 
your ALLOWED_HOSTS (specifying a fully qualified domain name on each 
entry). It my be worth adding a note stating that in the Deployment 
section of the docs.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Overriding status in class Displayable.

2016-10-13 Thread Eduardo Rivas
Thinking out loud, but maybe you can override the admin form for PageAdmin
to set the default there instead of at the model level.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Live Demo Code

2016-10-07 Thread Eduardo Rivas
I think it's just a Mezzanine + Cartridge project with the demo content 
installed. You can get the same with:


pip install mezzanine cartridge
mezzanine-project -a cartridge project_name
cd project_name
python manage.py createdb --noinput
python manage.py runserver

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Internal Server Error

2016-10-02 Thread Eduardo Rivas
We're going to need to see the full traceback again to help you out. 
However, a 502 sounds like an error happening before the request reaches 
Django. Can you check the nginx logs? They should be in 
/home/%(user)s/logs/%(proj_name)s_error_nginx.log (taken from the fabfile).


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] How to deploy using Fabric to RHEL server?

2016-09-30 Thread Eduardo Rivas
I recommend you create the RHEL-compatible fabfile as a separate project 
and add it to Mezzanine's list of third party packages. The existing 
fabfile is quite big already and this looks like it would add quite a 
bit of complexity.


I did something similar for a fabfile that works with Webfaction (a 
hosting provider that uses Cent OS servers, disallows sudo, and a few 
other differences when compared to an Ubuntu VPS). It's just a matter of 
providing your own fabfile, modifying the files inside deploy/, and 
writing some instructions to integrate with Mezzanine. 
https://github.com/jerivas/mezzanine-webf


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Internal Server Error

2016-09-26 Thread Eduardo Rivas
Please don't double post. Some people are subscribed to this list and will
get every email.

Have you configured email reporting for your site? That should get you a
full traceback delivered to your email, which you can then post here. This
thread describes how to configure it:
https://groups.google.com/forum/#!searchin/mezzanine-
users/500/mezzanine-users/f5xWowOEL7M/4thS5GqwKiYJ

Also, you should check the server logs for errors. The default deployment
mechanism (fabric) puts error logs in
/home//logs/_error.log
(where  and  depend on your particular
installation).

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Mezzanine 4.2.2 released

2016-09-25 Thread Eduardo Rivas
Nice! Good to see these quick bug fix releases.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] More customized publishing workflow (Draft, Published...)

2016-09-20 Thread Eduardo Rivas
There's another person working on something like this here: 
https://github.com/stephenmcd/mezzanine/issues/411#issuecomment-235018090. 
You may want to check on that and unify efforts.


One issue with your approach is that it will require a migration when a 
user adds a new choice. This will affect all models that subclass 
Displayable (pretty much everything). The developer will have to 
maintain the whole migration history separately or use one of the hacks 
for field injection. Not desirable IMO.


Maybe we can define the choices in the form level instead of the model? 
That way the model field can be a non-choiced field while the 
dynamically generated choices are used in the form. That will still 
require a single migration but it can live in Mezzanine and be 
completely backwards compatible.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Blogposts visible on site but not in admin panel.

2016-09-15 Thread Eduardo Rivas

Hi Michael.

You're passing a variable called blog.blogpost to Mezzanine, which 
doesn't exist in the Python scope.


1. You have to add quotes around the model name to treat it as a string, 
not a variable: "blog.blogpost"
2. You need to add a comma after the name so the parentheses is treated 
as a list: ("blog.blogpost",)

3. Model names are CamelCased: ("blog.BlogPost",)

The setting should look like:

OWNABLE_MODELS_ALL_EDITABLE = ("blog.BlogPost",)

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Conflicting template tags with AngularJS

2016-09-08 Thread Eduardo Rivas

Hey there!

Looks like a general Django + Angular problem. I would turn to Google 
for that and also ask in the Django mailing list to get more exposure 
(or maybe the answer awaits you over there already!).


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Problem deploying Mezzanine on DigitalOcean

2016-09-07 Thread Eduardo Rivas
It looks like your theme application is lacking migrations. You'll need to 
create those if you want to use Mezzanine's models as dependencies of your 
app.

python manage.py makemigrations theme
python manage.py migrate theme

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: Deploy multitennancy sites on same machine

2016-09-06 Thread Eduardo Rivas
Hmm, I'm not sure if you can get away with using different URLs after 
the domain. What I would do in your case is use subdomains for each 
site: a.example.com, b.example.com, etc. If you go that way, you'll only 
need to create the site records in the admin and everything should be 
working as per the docs.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Deploy multitennancy sites on same machine

2016-09-06 Thread Eduardo Rivas
You can have as many different Mezzanine installations as you want. 
Usually each installation is made up by:


- One virtualenv with Mezzanine and all its dependencies
- One database for the site
- Your specific projects files (settings, urls, custom apps; generated 
via mezzanine-project)


Please note that this implies completely separate sites (database, 
uploaded files, and code are not shared).


On the other hand, when the docs speak about multi tenancy they are 
referring to using a single installation to serve multiple sites 
(domains or subdomains). This means that with one virtualenv, one 
database, and one settings file you want to serve multiple sites, 
leveraging Django's Site Framework.


Here are some examples of when to use each approach:

- Separate Mezzanine projects: Use this if the sites you want to create 
are completely unrelated. For example, if you want to host sites for 
several clients in a single server, each client project should have its 
own separate Mezzanine installation.


- Multi tenancy: Use this if a single project must be available through 
different domains / subdomains. All sites will have the same set of 
available apps and media files, but they can have a different appearance 
and database records. For example, a school district may want to have 
different sites for all their schools. They all share the same codebase, 
but have a slightly different appearance and their own DB records (blog 
posts, pages, etc).


Further reading:
- Django's site framework: 
https://docs.djangoproject.com/en/1.10/ref/contrib/sites/
- Mezzanine's multi tenancy: 
http://mezzanine.jupo.org/docs/multi-tenancy.html
- Deployment tutorial which mentions multiple projects in a single 
server (note that this assumes Mezzanine is being deployed to a VPS) 
http://mezzanine.jupo.org/docs/deployment.html#tutorial


Hope that clears things up a little bit :)

--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] collectstatic ignores App's static

2016-09-06 Thread Eduardo Rivas
Responding here too for future reference:

You need to create a Django app to put your templates and static files. I
usually just name the app "theme" and add it before mezzanine.boot in
INSTALLED_APPS. Inside this new app you can create a static/ folder to
store your custom static files or override any of Mezzanine's.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Where exactly does defaults.py go?

2016-09-06 Thread Eduardo Rivas
You need to create a Django app to put your defaults.py, your templates,
and static files. I usually just name the app "theme" and add it before
mezzanine.boot in INSTALLED_APPS.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Re: mezzanine refrence

2016-09-05 Thread Eduardo Rivas
I would like to add that one of the most important aspects of Mezzanine is
that it's just Django. Having a solid Django foundation will go a long way.
Look for the official Django tutorial and the Django Girls tutorial to get
started. Also, consult the Django docs as you work with Mezzanine.

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [mezzanine-users] Mezzanine 4.2.0 released

2016-08-15 Thread Eduardo Rivas

Really excited about the new Content Typed abstraction! :)

I just want to point out that Filebrowser now uses an HTML5 uploader, so 
Mezzanine is completely Flash-free.


--
You received this message because you are subscribed to the Google Groups "Mezzanine 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


  1   2   3   4   >