Hey Paullo, at this point if you go to Content -> Pages in the admin you
should be able to choose Event in the "Add" dropdown.  What sort of
functionality are you looking for?


On Tue, Apr 1, 2014 at 7:05 AM, Paullo <paul.c.h...@gmail.com> wrote:

> Hi,
>
> I've created modules that work as expected but I'm using the "django" way.
> I would like to use the "Mezzanine" way instead (Mainly to avoid having to
> create mobile templates..) but it doesn't show up in the admin panel. The
> docs state that inheriting from PageAdmin will only allow it to be added as
> a page rather than editable in the admin panel. How would I get the
> equivalent functionality using the Page model?
>
> Here's the original "django":-
>
> *models.py:*
>
> from django.db import models
> from django.utils import timezone
> from django.forms import ValidationError
>
> from mezzanine.core.models import Displayable, Ownable, RichText
> from mezzanine.utils.models import AdminThumbMixin
> from mezzanine.conf import settings
>
> from phookit.apps.geocoders.models import Geocoder
>
>
> def get_future_events():
>     today = timezone.now()
>     return Event.objects.filter(event_date__gte=today)
>
> def get_expired_events(age_days):
>     if( not age_days ):
>         return []
>
>     today = timezone.now()
>     maxAge = timezone.now() - timezone.timedelta(days=age_days)
>     return
> Event.objects.filter(event_date__gte=maxAge).exclude(event_date__gte=today).order_by("-event_date","-start_time")
>
>
> class Event(Displayable, Ownable, RichText, AdminThumbMixin, Geocoder):
>     event_date = models.DateField()
>     start_time = models.TimeField()
>     end_time = models.TimeField()
>
>     class Meta:
>         verbose_name = "Event"
>         verbose_name_plural = "Events"
>         ordering = ("event_date","start_time")
>
>
>     @models.permalink
>     def get_absolute_url(self):
>         url_name = "events:detail"
>         kwargs = {"event_id": self.id}
>         return (url_name, (), kwargs)
>
>
> *admin.py:*
> from copy import deepcopy
> from django.contrib import admin
> from mezzanine.core.admin import DisplayableAdmin, OwnableAdmin
>
> from .models import Event
>
> # never show published or expiry date
> eventFieldsets = deepcopy(DisplayableAdmin.fieldsets)
> eventFieldsets[0][1]["fields"].remove( ('publish_date', 'expiry_date') )
>
>
> class EventAdmin(DisplayableAdmin, OwnableAdmin):
>
>     fieldsets = (
>         deepcopy(eventFieldsets[0]),
>             ("Event details",{
>             'fields': ('address', 'content', 'event_date', ('start_time',
> 'end_time'), 'mappable_location', ('lat', 'lon'))
>             }),
>         deepcopy(eventFieldsets[1]),
>     )
>
>     def save_form(self, request, form, change):
>         """
>         Super class ordering is important here - user must get saved first.
>         """
>         OwnableAdmin.save_form(self, request, form, change)
>         return DisplayableAdmin.save_form(self, request, form, change)
>
> admin.site.register(Event, EventAdmin)
>
>
> And the stripped down "Mezzanine" way which isn't available in the control
> panel:
>
>
> *models.py*
> from django.db import models
> from mezzanine.pages.models import Page
> from mezzanine.pages.models import RichText
>
> class Event(Page, RichText):
>     event_date = models.DateField("Event date")
>     start_time = models.TimeField("Event start time")
>     end_time = models.TimeField("Event end time")
>
>
> *admin.py*
> from django.contrib import
> admin
> from mezzanine.pages.admin import
> PageAdmin
> from .models import Event
>
>
> admin.site.register(Event, PageAdmin)
>
> Cheers 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.

Reply via email to